| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Encapsulate all the platform specific magic around keyboard in to
specific classes, in order to keep the core code more readable.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
Fixed so config variables can pass an empty argument.
Solves issue #1791.
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| | |
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.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
|\ \
| | |
| | | |
Only announce clipboard for plain text data
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
|\ \ |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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.
|
| |/
|/|
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| | |
It's easier for the user if the most recently used entries are at the
top.
|
| |
| |
| |
| |
| | |
We don't need random access to the entries, so a list fits just as well.
It also has better accessors we need.
|
| |
| |
| |
| | |
This happens if you've connected to a server using a Unix socket.
|
|/
|
|
|
| |
Prefer this exception for failures involving errno as it gives a better
error description.
|
|
|
|
|
| |
These functions return a GnuTLS status, so we should use the correct
exception for that so we get the proper error messages.
|
|
|
|
|
| |
This is the user actively rejecting the connection, and should be
signalled as such for correct behaviour.
|
| |
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|\ |
|
| | |
|
| |
| |
| |
| |
| |
| | |
Cursor data has a depth of 32 bits and hence cannot use CPIXELs.
This is a regression from baca73d.
|
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| | |
Problems with the original code: A process can only establish one connection.
After modification, multiple connections can be supported.
|
| | |
|
| |
| |
| |
| |
| | |
Although rare, there are cases where we might fail to determine our base
directories. Make sure the code can handle it.
|
| |
| |
| |
| | |
This is non-trivial now, so let's modularize this a bit.
|
|\ \
| |/
|/| |
Add FIXME comment regarding macOS minimise fix
|
|/
|
|
|
|
|
|
|
| |
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.
|
|\
| |
| | |
Apple only: exit FL_Window fullscreen if active in order to minimize.
|
| | |
|
|\ \
| |/
|/| |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
|/
|
|
|
| |
The scaler is now informed of the colour space encoded into the stream
so that it may do the proper conversion.
|
|\ |
|
| |
| |
| |
| | |
This fixes a memory leak
|
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| | |
This fixes commit a79c33d.
|
| |
| |
| |
| |
| | |
This is a policy decision, so let's not enforce something on our own if
there is a system policy to rely on.
|
| |
| |
| |
| |
| | |
It's not used for Windows or macOS builds, so don't show the setting
there.
|
|\ \ |
|
| | |
| | |
| | |
| | |
| | | |
Password should not be greater than 8 characters.
Because only 8 valid characters are used.
|