Pierre Ossman [Fri, 15 Jul 2022 12:50:46 +0000 (14:50 +0200)]
Respect system UI font
Use the font specified by the system for UI elements. For Windows and
macOS this is straight forward, but Linux is more complex as there is no
single source for this information.
Pierre Ossman [Fri, 14 Jan 2022 13:07:19 +0000 (14:07 +0100)]
Change to modern layout in options dialog
Classical tabs are very dated. They are also a practical problem as you
get very limited in the numbers of tabs we can have, and how long the
text can be on them.
Switch to one popular modern model with a list on the left instead where
pages can be selected.
Pierre Ossman [Tue, 14 Dec 2021 16:06:36 +0000 (17:06 +0100)]
Handle macOS keyboard stealing
The system steals keyboard events for certain system keyboard shortcuts,
e.g. Cmd+Tab. Unfortunately this isn't considered a focus loss, so we
don't realise we've lost a few keyboard events and can end up in a
confused state.
Fortunately it is possible to detect when this happens and reset the
keyboard state, just like we do when focus is lost.
Pierre Ossman [Mon, 12 Dec 2022 14:25:51 +0000 (15:25 +0100)]
Don't start sessions until there are users
Delay startup of VNC sessions until user databases are up and running.
This is the same ordering that GDM imposes to make sure users can
actually log in.
Jan Grulich [Tue, 9 Aug 2022 12:31:07 +0000 (14:31 +0200)]
x0vncserver: add new keysym in case we don't find a matching keycode
We might often fail to find a matching X11 keycode when the client has
a different keyboard layout and end up with no key event. To avoid a
failure we add it as a new keysym/keycode pair so the next time a keysym
from the client that is unknown to the server is send, we will find a
match and proceed with key event. This is same behavior used in Xvnc or
x11vnc, although Xvnc has more advanced mapping from keysym to keycode.
Pierre Ossman [Mon, 7 Nov 2022 12:45:34 +0000 (13:45 +0100)]
Flush decoder errors on close()
We don't want any stray exceptions as we are cleaning up, so handle any
still pending decoder errors by just logging them. We are already
shutting down so there is no need to abort the connection here.
Pierre Ossman [Tue, 6 Sep 2022 05:30:11 +0000 (07:30 +0200)]
Move general FLTK stuff to own directory
Let's separate TigerVNC specific things from stuff that could be part of
upstream FLTK. These are files that we would like to collaborate with
other FLTK users, so they are more liberally licensed and avoid using
TigerVNC specific things.
Pierre Ossman [Wed, 24 Aug 2022 08:31:42 +0000 (10:31 +0200)]
Use BufferedOutStream in more streams
Avoid duplicating all the memory mangement, and instead use the
BufferedOutStream as a base clase for all out streams that need an
intermediate buffer.
Jan Grulich [Thu, 11 Aug 2022 11:15:29 +0000 (13:15 +0200)]
x0vncserver: update/display cursor only on correct screen in zaphod mode
We have to check whether we update cursor position/shape only in case
the cursor is on our display, otherwise in zaphod mode, ie. when having
two instances of x0vncserver on screens :0.0 and :0.1 we would be having
the cursor duplicated and actually not funcional (aka ghost cursor) as
it would be actually not present. We also additionally watch EnterNotify
and LeaveNotify events in order to show/hide cursor accordingly.
Change made with help from Olivier Fourdan <ofourdan@redhat.com>
This commit changes the color of the edges of the dot cursor in the Java
version of vncviewer from fully transparent to white, bringing it in
line with the C++ native version.
Pierre Ossman [Mon, 4 Jul 2022 12:42:55 +0000 (14:42 +0200)]
Store artifacts from Github actions
Might be useful for testing in some cases. Note that the Windows and
Linux binaries will depend on libraries from the build environment. So
the user will need to match those manually.
Pierre Ossman [Tue, 5 Jul 2022 07:19:07 +0000 (09:19 +0200)]
Fix Xvnc dependency list (again)
The previous commit was incorrect in that it overrides automake's
dependency list, rather than adding to it. So we need to make sure
things are duplicated between Xvnc_DEPENDENCIES and Xvnc_LDADD as
appropriate.
Use the same approach as the Xorg binary to keep things familiar.
Pierre Ossman [Mon, 4 Jul 2022 11:59:42 +0000 (13:59 +0200)]
Add missing dependencies for Xvnc
These aren't crucial for a clean build, but must be set for Xvnc to be
properly rebuilt if anything in the Xorg tree changes. automake doesn't
properly deduce these automatically from Xvnc_LDADD, unfortunately.
Pierre Ossman [Tue, 28 Jun 2022 12:49:40 +0000 (14:49 +0200)]
Safely discard large (extended) clipboard contents
Avoid having to buffer everything we want to discard, and instead do it
piece by piece. This is more efficient, and avoids hitting any limits on
the buffering.
Note that this is safe here because we already know we have all the
compressed data. It would not be safe for a general input stream.
Pierre Ossman [Tue, 28 Jun 2022 12:47:39 +0000 (14:47 +0200)]
Properly restore cork state when changed
These streams both need to change the corking state temporarily, but it
is important it is restored to the previous state or things might get
messed up.
For the zlib stream it would just leave things uncorked, which still
works but is less efficient.
But for the TLS stream it might make things very unresponsive as the
corking might be left on permanently, delaying packets indefinitely.