| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
It's just used in this one place, and isn't very large. Also move things
around a bit to avoid having to define new complex types.
|
|
|
|
|
|
| |
Fix a bug in the comparison function that could result in the wrong
index being assigned to a monitor. Change the logic to more directly map
to the description.
|
|
|
|
|
|
|
|
| |
macOS and Windows present mirrored monitors as a single virtual monitor,
but X11 exposes this scenario as two distinct monitors with identical
coordinates. This messes up our logic, and is likely confusing for the
user. So instead we'll ignore any monitors that have identical
coordinates to any already seen monitors.
|
|
|
|
|
| |
Try to reuse and split things so that it makes things easier for the
translators.
|
|
|
|
|
| |
Clean up the structure around storing and loading parameters and server
history so that failures will always be reported by using exceptions.
|
|
|
|
| |
Error handling is more straight forward in the C file interface.
|
|
|
|
|
| |
Let's separate the standard global event handling from the hacky
workarounds, for clarity.
|
| |
|
|\ |
|
| | |
|
| |
| |
| |
| |
| |
| | |
If the file has been transferred from a Windows system then it might
have \r\n line endings instead of \n. Make sure this doesn't leak in to
the parameter values.
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
We only need to check the event type once, and preferably early, and
avoid doing more work than necessary.
|
| |
| |
| |
| |
| | |
We don't want the log to spam every time this parameter is used so only
complain from the parses when the value is changed.
|
| |
| |
| |
| |
| | |
This class is generic and should not reference a specific instance of
it.
|
| |
| |
| |
| | |
Try to be consistent with existing log messages.
|
| |
| |
| |
| |
| |
| |
| | |
Fix some indentation issues and make sure everything* uses CamelCase.
* MonitorArrangement is left as snake_case in order to pretend it is an
independent FLTK widget class.
|