| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Add also missing <stdlib.h> where required.
|
|
|
|
|
|
| |
The socket might not be the stream actually used, e.g. when we are using
TLS. Make sure we cork the proper stream to get all the benefits of
corking.
|
|
|
|
| |
Uncorking implicitly flushes, so we don't need this.
|
|
|
|
|
| |
FFMPEG is needed by the RFB library, so all the details about it should
only be applied there and not for other components.
|
|
|
|
|
| |
Modern cmake has better support for adding source files and libraries
incrementally, so let's use that to clean things up.
|
| |
|
|
|
|
|
| |
Some desktop environment, like KDE, need more rastered sizes and cannot
make use of the SVG.
|
|
|
|
| |
This code is never used on Windows, so remove it.
|
|
|
|
|
| |
Avoid the risk of the list of sizes and the list of icons getting out of
sync and causing memory corruption.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
FLTK has a lot of synchronous stuff (like dialogs), which mean that the
main loop might be run recursively in some cases. If there is data
available on our socket then CConn::socketEvent() will be called
constantly in a busy loop.
Avoid this by removing socket notifications whilst we are processing
data.
|
| |
|
| |
|
|
|
|
|
| |
The migration from 32-bit to 64-bit has long passed. Let's get rid of
all distinctions as native applications it the norm now.
|
|\ |
|
| |
| |
| |
| | |
Linux implementation using ffmpeg
|
|/
|
|
| |
Otherwise things might be logged under the wrong label.
|
|
|
|
|
| |
Unconditionally log the erroneous screen layout if it fails to
validate to simplify debugging.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If monitor mirroring was enabled while in a session with vncviewer
running on Linux, the session would not be properly resized on the
server. This was a consequence of only looking at the size and
coordinates of each screen when matching against existing screens after
the screen layout was changed, when in fact we have two (or more)
monitors with the same coordinates and size (but differing ids). This
led to the same monitor being added twice to the layout which would
later fail layout validation, resulting in no resize request being sent
to the server.
When matching, we now also check if the existing screen is not already
present in the layout before considering it a match.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If we've explicitly requested a position (using -geometry) then we were
still triggering legacy full-screen request logic. This is very counter
intuitive as having a position that doesn't align with a monitor should
disqualify us for that.
It turns out that at least marco (and probably everything
metacity-derived) ends up ignoring the requested position and we go back
to triggering the legacy logic again.
Work around this by assuming that the window manager will adjust our
initial position and don't consider that in the workaround logic.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If the options dialog was open when a screen configuration happened the
widget could get out of sync from the settings. A scenario when this
happened was:
1) 3 monitors, fullscreen selected on the two right-most screens
2) disconnect the left-most screen (the one not selected)
In this case, using GNOME, vncviewer would appear in fullscreen on the
right of the two remaining monitors, but the widget would show both
monitors selected. The reason was that the MonitorArragement index
doesn't work the same way as FLTK's screen index.
It's debatable how vncviewer should behave here, but the GUI should at
least match the actual setting.
|
| |
|
|
|
|
|
| |
The norm is to have error strings without punctiation, so avoid adding
one as it just confuses the translators.
|
|
|
|
|
| |
Many window managers don't have proper logic to restrict the window size
to something sane, so we have to take care of that ourselves.
|
|
|
|
|
|
| |
If this is done before the window is shown then it can accidentally
override the window manager's placement of the window. Reducing the size
should be sufficient to avoid trigger a full-screen request.
|
|
|
|
|
|
| |
The generally recommended way is to include it from source files, not
headers. We had a mix of both. Let's try to be consistent and follow the
recommended way.
|
|
|
|
|
|
| |
Tweak the workaround from 9023a2e so that it only triggers if there
actually is a problem to fix. This is important since changing levels
also has the side effect of raising the window to the top of the level.
|
|
|
|
|
|
|
|
|
| |
This was designed as a general FLTK widget and we want to encourage
others to use it and improve it. So relicense these particular files in
a way that allows it to be used by anyone using FLTK.
As part of this we need to stop using other parts of TigerVNC as that
code is still covered by the GPL.
|
|
|
|
|
| |
Fl_RGB_Image doesn't take ownership of the pixel data, so we have to
explicitly free this as well once we are done.
|
| |
|
|
|
|
|
|
| |
Bug introduced in fb561eb but still somehow passed manual testing.
Resulted in some stray reads off the end of the stack, which were
hopefully harmless.
|
|
|
|
|
| |
These function are not guaranteed to succeed, and we've had reports that
they fail on ARM. So make sure we more properly check return values.
|
|
|
|
|
| |
Try to be more consistent that related options should have a group box
around them.
|
|
|
|
|
| |
This is what pretty much everyone else calls these kind of settings, so
let's change so users feel familiar.
|
|
|
|
|
|
| |
Try to focus on the commonly used settings here in order to keep things
understandable. The uncommon settings will need to be specified as
command line arguments instead.
|
|
|
|
|
| |
Clarify what this list is used for, and organize it so it is easier to
match to the options dialog.
|
|
|
|
|
|
|
|
|
| |
Previously, there were a number of inconsistencies in the use of
"full-screen" and "full screen" in logs, documentation, and user
interfaces. The consensus seems to be that "full screen" is correct when
used as a noun while "full-screen" is correct when used as an
adjective. These inconsistencies have now been adjusted to follow
consensus.
|
|
|
|
|
| |
vncviewer previously had a the same localized error message duplicated
on a bunch of places. Pull these duplicates out into a single function.
|
|
|
|
|
|
|
| |
If you close the reconnect dialog then we should assume that you want to
close things, not that you want to reconnect. Unfortunately FLTK returns
the first choice when closing the dialog, so that needs to be the
"Cancel" alternative.
|
|\
| |
| | |
Workaround FLTK bug that causes OptionsDialog to appear behind DesktopWindow
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
FLTK's fullscreen_x() function will always put the window on a high
level (NSStatusWindowLevel = 25), even if the window doesn't have focus.
This causes the OptionsDialog to end up behind the DesktopWindow when
the fullscreen function is called. Until we can rest assured that most
people building TigerVNC will use a fixed version of FLTK, we will need
this workaround.
|
|\ \
| | |
| | | |
Remove modal property from ServerDialog
|
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Modal windows are meant to be child windows such as menus or popups that
are intended to always appear in front of its parent.
Modal FLTK windows without a parent seem to behave strangely on macOS.
Such windows can appear in front of their modal children windows.
When opening OptionsDialog from ServerDialog, it was easy to get to a
broken state by then switching focus back to the ServerDialog. This
would cause the ServerDialog to appear in front, but not be useable as
the options window would still have control of mouse and keyboard.
Additionally, modal windows without parents appear in front of other
normal applications on macOS. This means that the ServerDialog couldn't
be put behind Safari for example.
The fact that ServerDialog was a "modal" window was a bit strange,
seeing as it doesn't have any parent windows. Removing the modal
property from this window causes all the strange-ness to go away.
|
|\ \
| |/
|/| |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
There was an issue with the new grabs that were introduced in commit
2289342de7222e4ff2483eae95bb9898830e6097. On macOS when running
vncviewer in fullscreen on one monitor, we saw that we sometimes got
resize and fullscreen events when switching the focus away from
vncviewer. With the changes in the commit mentioned above this meant
that we immediately grabbed the keyboard again, thus never releasing it.
Fixes #1332.
|
|/ |
|
|
|
|
|
|
| |
If a monitor is part of a set of mirrored monitors, then give the name
of all used monitors as we don't know which one the user will most
strongly associate with what they see.
|
|
|
|
|
| |
The device name is very internal and likely of little use to a user.
Instead give the more user friendly string we can get out of the system.
|
|
|
|
|
| |
Makes it a lot easier to deal with the allocation of memory for the
string, avoiding any limits.
|