| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
.desktop files support was not added to msgfmt until v0.19
|
|
|
|
|
|
| |
Only fairly recent versions of gettext can translate .desktop files.
So fall back to the older intltool on older systems, or just a plain
copy if intltool is also missing.
|
|
|
|
|
|
| |
Some systems (e.g. macOS) send massive amounts of pointer events, so
we need to start rate limiting things to something sensible by default.
One event per screen refresh should be more than sufficient.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add a new parameter 'alertOnFatalError' which guards
the displaying of the GUI alert on fatal errors, and
thus when false just gives the textual error.
Now I can do:
while true
do
vncviewer alertOnFatalError=false vm:0
sleep 1
done
and it'll reappear when my VM appears without me getting error
dialogs.
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
--
|
|
|
|
|
| |
This often gives the user more information about what kind of
application this is.
|
| |
|
| |
|
|
|
|
| |
Since it is caught by the local system on most platforms.
|
|\ \
| | |
| | |
| | | |
https://github.com/LukeShu/tigervnc
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Have a window that is sized to the remote screen. Now shrink the window
vertically, making it shorter than the remote screen in one axis. The
vertical scrollbar appears. However, the horizontal scrollbar does not
appear, despite the rightmost ~24 pixels (Fl::scrollbar_size()) being
hidden by the vertical scroll bar.
Fix that.
For clarity, move the fullscreen checks into a separate `if` statement,
rather than keeping the size and fullscreen checks together.
I think the comment does a decent job of explaining and justifying the
check's logic, but if you require further convincing, perhaps this
alternate explanation will help:
The check for the X-axis is
if ((w() - (h() < viewport->h() ? Fl::scrollbar_size() : 0) < viewport->w())
To be a bit more verbose and repetitive, we can split that ternary in to
two separate checks, and add some comments:
if (
(w() - < viewport->w()) // X needs a scrollbar
||
( (w() - Fl::scrollbar_size() < viewport->w()) && (h() < viewport->h()) )
//( X doesn't need a scrollbar unless Y does ) && ( Y does need one ) )
)
Within the "Y does need one" check, we don't need to worry about the
case where `h() - Fl::scrollbar_size() < viewport-h()` is true,
because if both axes are saying "I don't need a scrollbar unless
you do", then neither needs one.
|
| |/ |
|
|/
|
|
|
| |
They finally added kVK_RightCommand, so our workaround needs to be
conditional.
|
| |
|
|
|
|
|
|
|
| |
macOS actually uses the alpha channel on windows, so we can get visual
artifacts if we feed it bogus alpha data. This filtering unfortunately
causes some CPU usage, but it's necessary until we can make sure the
framebuffer always contains proper 0xff for alpha.
|
|
|
|
|
|
| |
We won't always be on the primary monitor, so check which color space
we're actually using right now. For offscreen stuff we assume a standard
sRGB color space.
|
|
|
|
|
|
| |
The system expects these to be immutable, so changing the data after
creation only works in some special cases. We need to recreate the
CGImage object each time we've changed something.
|
|
|
|
| |
It seems to be more efficient.
|
|
|
|
| |
Some backends don't like empty draw operations, so have an early check.
|
|
|
|
| |
Everyone else seems to get by with using 0600, so let's do the same.
|
|
|
|
|
| |
It's not enough that we detach from the shared memory, we must also
tell the X server to do so for it to be freed properly.
|
| |
|
| |
|
|
|
|
|
|
| |
Adds an optional graph to the viewer to display current frame rate,
pixel rate and network bandwidth. Makes it easier to debug and test
performance related issues.
|
|
|
|
| |
Incoming width specifies wrapping width, and we do not want any wrapping.
|
|
|
|
|
| |
This will allow us to use better formats that preserve the entire
alpha channel.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Some platforms draw directly to the screen, which means that updates
will flicker if we draw multiple layers. Prevent this by first
composing the update on a hidden surface.
|
|
|
|
| |
This will allow us to render more things than just the framebuffer.
|
|
|
|
|
| |
Stop fighting with the FLTK scroll widget and handle layout ourselves.
This opens up the possibility of doing more complex drawing as well.
|
|
|
|
| |
Raising the requirement to 10.5 allows us to clean up the code a bit.
|
| |
|
|
|
|
|
| |
The complex logic waiting for events didn't result in any added
performance, so use the simpler approach.
|
|
|
|
|
| |
Use the APIs the way Apple wants us to, in order to avoid slow
fallback code paths in Quartz.
|
| |
|
|
|
|
|
| |
These are very rare and very low level. Might as well just print
the offending call to keep things easily maintained.
|
|
|
|
|
|
| |
There were still some circumstances where we could get stuck reading
data and not respect close events properly. Move that logic to a more
central place in order to make it more reliable.
|
| |
|
| |
|
|
|
| |
Fixes #270
|
| |
|
| |
|
|
|
|
|
|
|
| |
Unfortunately HP ships a buggy X server on their thin clients
that send out extra, bogus ShmCompletion events. This screws up our
logic so we need to filter them out. Fortunately they are sent with
an invalid drawable id, so simply verify that.
|
|
|
|
|
| |
We haven't supported them in a long time so we shouldn't mention
them in the interface and documentation.
|
|
|
|
|
|
| |
Previously the incoming clipboard was unconditionally set to both
the PRIMARY and CLIPBOARD selection. This isn't always what the
user want, so make it configurable.
|
| |
|
| |
|
|
|
|
|
| |
These files are not Red Hat or Ubuntu specific, so install them
on all Unix systems where the viewer is installed.
|