| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|\ |
|
| |
| |
| |
| | |
The reason for this is to keep a consistency through out the project.
|
| |
| |
| |
| | |
The reason for this is to keep a consistency through out the project.
|
| | |
|
| |
| |
| |
| |
| | |
This is missing on Windows by default, and will cause the build to fail
if ENABLE_NLS is disabled.
|
| |
| |
| |
| |
| | |
Some compilers don't consider (const char*) enough of a marker and will
complain.
|
| |
| |
| |
| | |
Avoid truncation problems with the fixed size buffers.
|
| | |
|
|\ \ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This commit implements the pseudo-encoding ExtendedMouseButtons which
makes it possible to use the back/forward mouse buttons.
This commit contains work originally done by
PixelSmith <manny33@frontbuffer.com>.
|
| | |
| | |
| | |
| | |
| | | |
It makes more sense to use bit shifts instead of decimals for each
button.
|
|\ \ \
| |_|/
|/| | |
|
| | |
| | |
| | |
| | |
| | | |
This makes things more consistent since we mix with the standard library
exceptions so often.
|
| | |
| | |
| | |
| | |
| | | |
There is no point to having our own generic exception class. Let's use
the one provided by the standard C++ library.
|
| | |
| | |
| | |
| | |
| | | |
Use the more specific already included exception classes for common
errors to keep things more understandable.
|
| | |
| | |
| | |
| | |
| | | |
Make sure our exceptions are part of the standard exception class
hierarchy.
|
| | |
| | |
| | |
| | | |
Harmonize with the standard C++ exceptions.
|
| | |
| | |
| | |
| | |
| | | |
In preparation for using the built in C++ exception classes, which do
not accept a format string.
|
|/ /
| |
| |
| |
| |
| | |
The UserDialog object is now only created for a single connection at a
time, which means we need to make sure the cached username and password
survive until the subsequent object.
|
| |
| |
| |
| |
| |
| | |
Avoid duplicating this parsing as that will just increase the risk for
bugs. And in fact, this duplicated code already does not handle all
cases properly.
|
|\ \ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
|/
|
|
|
| |
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.
|
|\ |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
|/
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
|
|
|
| |
It's unclear why this code was ever added, and it can be very confusing
that the window partially adjusts itself. The code is also in conflict
with the earlier comment that states we'll leave the window size alone
if it didn't perfectly match before the resize.
|
|
|
|
|
| |
This is a very limited bit field, so use an 8 bit type to clearly show
how many bits are available.
|
| |
|
| |
|
|
|
|
|
| |
We should not be throwing up error messages, or asking to reconnect, if
the user has actively cancelled the authentication attempt.
|
|
|
|
|
| |
It's a source of confusion and possibly bugs to reuse the same variable
name for multiple things.
|
|
|
|
|
| |
These functions act only on the input parameters, so let's make them
static to more clearly indicate that they do not act upon any object.
|
|
|
|
|
|
|
|
|
| |
These are often more readable as they avoid a lot of the boilerplate of
iterating over fixed arrays or STL containers.
Note that this change is very conservative to avoid noise in "git
blame". Only loops where this is a clear improvement have been
converted.
|