aboutsummaryrefslogtreecommitdiffstats
path: root/vncviewer
Commit message (Collapse)AuthorAgeFilesLines
* Add missing FLTK include statementsAlbrecht Schlosser2022-07-075-1/+6
| | | | Add also missing <stdlib.h> where required.
* Cork the proper output stream in the clientPierre Ossman2022-06-281-2/+2
| | | | | | 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.
* Remove unnecessary flushPierre Ossman2022-06-281-1/+0
| | | | Uncorking implicitly flushes, so we don't need this.
* Fix up ffmpeg header and library handlingPierre Ossman2022-06-071-1/+1
| | | | | FFMPEG is needed by the RFB library, so all the details about it should only be applied there and not for other components.
* Avoid temporary cmake variablesPierre Ossman2022-06-071-16/+13
| | | | | Modern cmake has better support for adding source files and libraries incrementally, so let's use that to clean things up.
* Automatically generate Windows icon filePierre Ossman2022-05-111-1/+1
|
* Add more Unix icon sizesPierre Ossman2022-05-112-2/+2
| | | | | Some desktop environment, like KDE, need more rastered sizes and cannot make use of the SVG.
* Remove dead codePierre Ossman2022-05-111-6/+0
| | | | This code is never used on Windows, so remove it.
* Safer allocation of icon arrayPierre Ossman2022-05-111-1/+1
| | | | | Avoid the risk of the list of sizes and the list of icons getting out of sync and causing memory corruption.
* Fix bad indentation in CConn::socketEvent()Pierre Ossman2022-04-061-5/+5
|
* Ignore socket whilst processing dataPierre Ossman2022-04-061-2/+3
| | | | | | | | | | 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.
* Added AppStream meta info file for the vncviewerJoachim Falk2022-03-082-0/+73
|
* Added screenshots for AppStream meta info file for vncviewerJoachim Falk2022-01-283-0/+0
|
* Remove 32-/64-bit distinctionsPierre Ossman2022-01-212-10/+4
| | | | | 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.
* Merge branch 'h264dec' of https://github.com/xornet-sl/tigervncPierre Ossman2022-01-213-3/+27
|\
| * H264 DecoderVladimir Sukhonosov2022-01-213-3/+27
| | | | | | | | Linux implementation using ffmpeg
* | Log objects should be localPierre Ossman2022-01-211-1/+1
|/ | | | Otherwise things might be logged under the wrong label.
* Always log screen layout if validation failsWilliam Sjöblom2022-01-191-3/+5
| | | | | Unconditionally log the erroneous screen layout if it fails to validate to simplify debugging.
* Fix session resize after mirroring on Linux vncviewerWilliam Sjöblom2022-01-191-2/+6
| | | | | | | | | | | | | | | 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.
* Improve full-screen workaround on connectPierre Ossman2022-01-121-5/+11
| | | | | | | | | | | | | | 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.
* 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.