aboutsummaryrefslogtreecommitdiffstats
path: root/vncviewer
Commit message (Collapse)AuthorAgeFilesLines
...
* Update MonitorArrangement widget after changeSamuel Mannehed2022-01-102-1/+41
| | | | | | | | | | | | | | | | | 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.
* Update copyright year to 2022Pierre Ossman2022-01-052-2/+2
|
* Don't add . to error message stringPierre Ossman2022-01-041-1/+1
| | | | | The norm is to have error strings without punctiation, so avoid adding one as it just confuses the translators.
* Avoid creating windows larger than current monitorPierre Ossman2021-12-301-0/+23
| | | | | 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.
* Don't move window in full-screen workaroundPierre Ossman2021-12-301-1/+0
| | | | | | 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.
* Be consistent in including config.hPierre Ossman2021-12-309-0/+36
| | | | | | 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.
* Only restore level if it is wrongPierre Ossman2021-12-301-1/+2
| | | | | | 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.
* Relicense MonitorArrangement widgetPierre Ossman2021-12-272-51/+50
| | | | | | | | | 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.
* Avoid leaking overlay memoryPierre Ossman2021-12-231-0/+1
| | | | | Fl_RGB_Image doesn't take ownership of the pixel data, so we have to explicitly free this as well once we are done.
* Handle empty lines in server historyPierre Ossman2021-12-231-4/+8
|
* Fix typo in mirror monitor detectionPierre Ossman2021-12-231-4/+4
| | | | | | 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.
* Be more paranoid about monitor infoPierre Ossman2021-12-231-6/+18
| | | | | 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.
* Add headings/groups for optionsPierre Ossman2021-12-103-96/+193
| | | | | Try to be more consistent that related options should have a group box around them.
* Rename "Screen" tab to "Display"Pierre Ossman2021-12-103-8/+8
| | | | | This is what pretty much everyone else calls these kind of settings, so let's change so users feel familiar.
* Simplify screen settingsPierre Ossman2021-12-103-143/+71
| | | | | | 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.
* Add comments to stored parameters listPierre Ossman2021-12-091-2/+11
| | | | | Clarify what this list is used for, and organize it so it is easier to match to the options dialog.
* Be consistent in "full screen" and "full-screen" useWilliam Sjöblom2021-11-244-4/+4
| | | | | | | | | 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.
* Deduplicate vncviewer error messagesWilliam Sjöblom2021-11-234-26/+21
| | | | | vncviewer previously had a the same localized error message duplicated on a bunch of places. Pull these duplicates out into a single function.
* Fix closing reconnect dialog logicPierre Ossman2021-10-141-2/+2
| | | | | | | 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.
* Merge pull request #1349 from samhed/fullscreenLevelSamuel Mannehed2021-10-063-4/+29
|\ | | | | Workaround FLTK bug that causes OptionsDialog to appear behind DesktopWindow
| * Workaround options window appearing behind viewerSamuel Mannehed2021-10-063-4/+29
| | | | | | | | | | | | | | | | | | 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.
* | Merge pull request #1350 from samhed/serverdialogmodalSamuel Mannehed2021-10-061-2/+0
|\ \ | | | | | | Remove modal property from ServerDialog
| * | Remove modal property from ServerDialogSamuel Mannehed2021-10-051-2/+0
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | Merge branch 'master' of https://github.com/johahauf/tigervncPierre Ossman2021-10-062-9/+30
|\ \ | |/ |/|
| * Adjust default directory for configuration file save and loadJohannes2021-09-212-9/+30
| |
* | Only grab keyboard when we have focusSamuel Mannehed2021-09-242-1/+17
| | | | | | | | | | | | | | | | | | | | | | 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.
* | Create helper function for grabKeyboard conditionsSamuel Mannehed2021-09-242-18/+13
|/
* Give all monitor names when mirroredPierre Ossman2021-09-091-16/+29
| | | | | | 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.
* More user friendly monitor name on WindowsPierre Ossman2021-09-091-1/+5
| | | | | 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.
* Use std::string for monitor namesPierre Ossman2021-09-092-27/+27
| | | | | Makes it a lot easier to deal with the allocation of memory for the string, avoiding any limits.
* Inline the Windows monitor name codePierre Ossman2021-09-093-54/+35
| | | | | 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 corner case in monitor index calculationPierre Ossman2021-09-091-4/+6
| | | | | | 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.
* Handle mirrored monitors on X11Pierre Ossman2021-09-093-17/+63
| | | | | | | | 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.
* Clean up some error stringsPierre Ossman2021-09-085-24/+18
| | | | | Try to reuse and split things so that it makes things easier for the translators.
* Consistently use exceptions for parameter errorsPierre Ossman2021-09-082-184/+227
| | | | | Clean up the structure around storing and loading parameters and server history so that failures will always be reported by using exceptions.
* Use classic FILE I/O for storing server historyPierre Ossman2021-09-081-28/+50
| | | | Error handling is more straight forward in the C file interface.
* Clean up global event handler structurePierre Ossman2021-09-062-37/+49
| | | | | Let's separate the standard global event handling from the hacky workarounds, for clarity.
* Restore FLTK event dispatcher on exitPierre Ossman2021-09-061-0/+2
|
* Merge branch 'fullscreens-added-removed' of https://github.com/x11clone/x11clonePierre Ossman2021-09-022-0/+40
|\
| * Recreate fullscreen window if screens are removed or addedPeter Åstrand (astrand)2018-05-072-0/+40
| |
* | Tolerate carriage return in config filesPierre Ossman2021-09-021-0/+4
| | | | | | | | | | | | 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.
* | Fix inconsistent line endings in vncviewer configuration fileMeng Dong2021-09-021-2/+2
| |
* | Include translations in macOS and Windows buildsPierre Ossman2021-08-271-1/+62
| |
* | Expose reconnect setting in options dialogPierre Ossman2021-07-233-0/+10
| |
* | Retry connection in case of an errorJohannes2021-07-239-61/+141
| |
* | Simply screen refresh handlerPierre Ossman2021-07-201-9/+4
| | | | | | | | | | We only need to check the event type once, and preferably early, and avoid doing more work than necessary.
* | Only log error when setting FullScreenSelectedMonitorsPierre Ossman2021-07-192-12/+18
| | | | | | | | | | 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.
* | Don't reference specific variable in classPierre Ossman2021-07-191-3/+3
| | | | | | | | | | This class is generic and should not reference a specific instance of it.
* | Avoiding final period in log messagesPierre Ossman2021-07-193-10/+10
| | | | | | | | Try to be consistent with existing log messages.
* | Clean up style in recent monitor codePierre Ossman2021-07-196-89/+89
| | | | | | | | | | | | | | 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.