aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Move keyboard handling to separate classesPierre Ossman2024-12-0414-1294/+1611
| | | | | Encapsulate all the platform specific magic around keyboard in to specific classes, in order to keep the core code more readable.
* Move keyboard tracking to CConnectionPierre Ossman2024-12-044-84/+134
| | | | | | This is a general thing so move it in to the core library instead, letting vncviewer focus on just translation of system events to VNC ones.
* Track keys using system key codePierre Ossman2024-10-162-75/+74
| | | | | We might not always be able to map to an RFB key code, so let's use the platform specific code to track which keys are pressed.
* Explicity install missing deps GitHub ActionsPierre Ossman2024-10-151-0/+1
| | | | | We seem to have gotten this implicitly before, but now that GitHub has switched to Ubuntu 24.04 we have to be explicit about it.
* Allow empty value for config valuesLinn Mattsson2024-10-091-1/+1
| | | | | | Fixed so config variables can pass an empty argument. Solves issue #1791.
* Merge branch 'errno' of github.com:CendioOssman/tigervncPierre Ossman2024-10-0950-190/+206
|\
| * Split SystemException to handle WindowsPierre Ossman2024-10-0939-167/+184
| | | | | | | | | | | | | | | | | | | | | | | | | | Windows has (at least) two error namespaces, both errno and GetLastResult(). These overlap, so it is important we keep track of which one we are dealing with. To make things extra problematic, the BSD socket API normally uses errno, but on Windows it has been mapped in to the GetLastResult() namespace. Try to keep better control of this by using separate classes for the namespaces.
| * Consistently use SocketException for socket errorsPierre Ossman2024-10-099-17/+17
| | | | | | | | | | | | The behaviour is not consistent as Windows doesn't use errno for socket errors, but Unix systems do. Always use the same exception to keep things somewhat sane.
| * Move SocketException to rdrPierre Ossman2024-10-093-8/+7
| | | | | | | | | | | | Socket APIs are used in more places than the abstraction in common/network. Make it easier to use this exception class by putting it in a more common place.
* | Update Friulian translationFabio T.2024-10-041-219/+250
| |
* | Clear clipboard state when its not plain textSamuel Mannehed2024-10-021-0/+3
| | | | | | | | | | | | | | | | | | | | Commit 8a80c906b9f7c08b1c664569a97d327d62c6d8ae added a check to prevent announcing clipboard when it's not plain text data. When this check triggers and we want to ignore the non-plain text clipboard, we should reset the state by no longer indicating pending clipboard, and by asking the server to clear its clipboard. This ensures we don't end up in a state where the server thinks the viewer has useful clipboard data, but it doesn't.
* | Merge branch 'clipboard_contains' of https://github.com/samhed/TigerVNCSamuel Mannehed (ThinLinc team)2024-10-011-0/+5
|\ \ | | | | | | Only announce clipboard for plain text data
| * | Only announce clipboard for plain text dataSamuel Mannehed2024-10-011-0/+5
|/ / | | | | | | | | | | | | | | | | | | | | | | | | FLTK has support for both image and plain text clipboard data, we don't. This means we only send plain text clipboard from the viewer to the server. Some applications can get confused when we announce that clipboard is available and later don't send anything. An example of such an application is QGIS, in the remote session it froze when an image was copied on the client side. This fix means we only call announceClipboard() when the clipboard contains plain text. That means TigerVNC is now more robust and doesn't trigger freezes in buggy applications.
* | Merge branch 'x0vncserver-clipboard' of https://github.com/gujjwal00/tigervncPierre Ossman2024-09-279-14/+344
|\ \
| * | Add clipboard support to x0vncserverGaurav Ujjwal2024-09-259-14/+344
| | |
* | | More carefully release mouse buttons on closePierre Ossman2024-09-242-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Only the client that currently has buttons pressed should actually send a release event as the client might not be currently in control of the pointer state. This is most clearly seen in a client that hasn't event authenticated properly yet. Approximate this from the server by using the last known server cursor position. It should hopefully not differ much from the last client provided position. Follow-up to 986280b382d57ef4f68d2d4afb13b26772e5acb0.
* | | Explicitly clean up grabs on disconnectPierre Ossman2024-09-231-0/+5
| |/ |/| | | | | | | They are not automatically cleaned up with the window on Windows, and we might want to reconnect so we cannot rely on the process cleanup either.
* | Filter duplicate server history entriesPierre Ossman2024-09-061-4/+42
| | | | | | | | | | | | | | | | A server can be specified in many different ways, so it is easy to get multiple entries in the history for the same thing. Get rid of these by parsing each entry and comparing with existing entries.
* | Move recent server to top of historyPierre Ossman2024-09-061-6/+5
| | | | | | | | | | It's easier for the user if the most recently used entries are at the top.
* | Use std::list for server historyPierre Ossman2024-09-064-18/+25
| | | | | | | | | | We don't need random access to the entries, so a list fits just as well. It also has better accessors we need.
* | Handle server history with '/' in entriesPierre Ossman2024-09-061-1/+3
| | | | | | | | This happens if you've connected to a server using a Unix socket.
* | Add more usage of SystemExceptionPierre Ossman2024-09-044-17/+25
|/ | | | | Prefer this exception for failures involving errno as it gives a better error description.
* Fix reporting of some TLS errorsPierre Ossman2024-09-042-22/+20
| | | | | These functions return a GnuTLS status, so we should use the correct exception for that so we get the proper error messages.
* Correctly handling rejecting server keyPierre Ossman2024-09-041-1/+1
| | | | | This is the user actively rejecting the connection, and should be signalled as such for correct behaviour.
* Add missing config.h includesPierre Ossman2024-09-045-0/+19
|
* Remove ConnFailedExceptionPierre Ossman2024-09-024-26/+22
| | | | | | | | There were more unclear usage of this exception class, and since nothing catches it it is very unclear what the purpose is. Go ahead and just remove it. Follow-up to bcaaea7.
* Update Chinese (simplified) translationMingye Wang (Artoria2e5)2024-09-021-270/+685
|
* Merge branch 'master' of https://github.com/0-wiz-0/tigervncPierre Ossman2024-08-301-0/+2
|\
| * vncviewer: add missing include for struct timevalThomas Klausner2024-08-301-0/+2
| |
* | Correctly handle ZRLE cursorsPierre Ossman2024-08-301-2/+2
| | | | | | | | | | | | Cursor data has a depth of 32 bits and hence cannot use CPIXELs. This is a regression from baca73d.
* | Only read first password from filePierre Ossman2024-08-301-1/+1
| | | | | | | | | | | | | | | | Read just the first password and ignore anything else in the password file. This allows you to reuse a password file from the server that also includes a view-only password. This fixes a regression introduced in b99daad.
* | Move getUserPasswd()/showMsgBox() to CConnectionKang Lin2024-08-3021-145/+100
| | | | | | | | | | Problems with the original code: A process can only establish one connection. After modification, multiple connections can be supported.
* | Improve error messages for base directory creationPierre Ossman2024-08-295-10/+14
| |
* | Handle failure getting VNC directoriesPierre Ossman2024-08-291-6/+25
| | | | | | | | | | Although rare, there are cases where we might fail to determine our base directories. Make sure the code can handle it.
* | Move base directory creation to helper functionPierre Ossman2024-08-291-25/+31
| | | | | | | | This is non-trivial now, so let's modularize this a bit.
* | Merge pull request #1825 from LMattsson/macos-minimize-fixmelinma (ThinLinc team)2024-08-271-0/+2
|\ \ | |/ |/| Add FIXME comment regarding macOS minimise fix
| * Add FIXME comment regarding macOS minimise fixLinn Mattsson2024-08-271-0/+2
|/ | | | | | | | | An issue with minimise not working when in fullscreen on macOS was workaround in Pull Request #1813. The underlaying issue is currently unknown. macOS native fullscreen mode was looked into, but no clear answer was given. See #1813 for details.
* Merge pull request #1813 from rudironsonijr/fix/macos-not-minimizinglinma (ThinLinc team)2024-08-231-0/+4
|\ | | | | Apple only: exit FL_Window fullscreen if active in order to minimize.
| * Apple only: exit FL_Window fullscreen if active in order to minimize.Rudimar Ronsoni Jr2024-08-191-0/+4
| |
* | Merge branch 'h264-colour-spaces' of https://github.com/any1/tigervncPierre Ossman2024-08-231-1/+16
|\ \ | |/ |/|
| * H264Libav: Use nearest-neighbour sampling in scalerAndri Yngvason2024-08-221-1/+1
| | | | | | | | | | | | | | | | | | | | | | sws_getCachedContext will set a default sampling method if 0 is passed to the flags argument. This means that when it is called again, the flags argument will not match the flags in the context, so a new one will be allocated every time. To get around this problem, we assign an explicit sampling method, one that also happens to be more efficient and just as good for this use-case as the default one, which is bicubic interpolation.
| * H264Libav: Handle colour space conversionAndri Yngvason2024-08-191-0/+15
|/ | | | | The scaler is now informed of the colour space encoded into the stream so that it may do the proper conversion.
* Merge branch 'h264-buffer-size-fix' of https://github.com/any1/tigervncPierre Ossman2024-08-192-11/+19
|\
| * H264Libav: Clean up sws contextAndri Yngvason2024-08-161-0/+1
| | | | | | | | This fixes a memory leak
| * H264Libav: Use AVFrame for pixel format conversion bufferAndri Yngvason2024-08-162-11/+18
| | | | | | | | | | | | | | | | This ensures that the buffer is allocated with the correct alignment and padding for use with sws_scale. This fixes out-of-bounds writes which would in some cases cause segmentation faults and/or heap corruption.
* | Handle existing config directory in vncpasswdPierre Ossman2024-08-151-2/+4
| | | | | | | | This fixes commit a79c33d.
* | Let pwquality check minimum lengthPierre Ossman2024-08-151-7/+10
| | | | | | | | | | This is a policy decision, so let's not enforce something on our own if there is a system policy to rely on.
* | Only show pwquality setting where relevantPierre Ossman2024-08-151-3/+3
| | | | | | | | | | It's not used for Windows or macOS builds, so don't show the setting there.
* | Merge branch 'master' of https://github.com/prownd/tigervncPierre Ossman2024-08-154-0/+68
|\ \
| * | Limit the maximum length of a password to 8 charactershanjinpeng2024-08-141-0/+5
| | | | | | | | | | | | | | | Password should not be greater than 8 characters. Because only 8 valid characters are used.