Pierre Ossman [Thu, 16 Nov 2017 15:44:36 +0000 (16:44 +0100)]
Fix bug where server cursor might disappear
We shouldn't unconditionally remove the server side cursor just
because the client supports client side cursors. We need to also
check that the client fulfills the other criteria for taking over
the cursor.
Pierre Ossman [Thu, 16 Nov 2017 15:43:13 +0000 (16:43 +0100)]
Avoid extra framebuffer update messages
In most cases we will send an update at the end of processing client
messages so these extra calls only slow things down. Server initiated
events still need an explicit call though.
Pierre Ossman [Thu, 16 Nov 2017 15:40:44 +0000 (16:40 +0100)]
Fix for initial client side cursor
Improve the tracking of what cursor we've sent to the client to make
sure the initial cursor is sent properly. We previously tried to infer
this information based on if we've rendered a server side cursor or
not. This logic broke down if things triggered before we've sent the
first update to the client.
Brian P. Hinz [Sun, 12 Nov 2017 20:42:23 +0000 (15:42 -0500)]
Override implicit focus transfer when "F10" key is pressed
Java L&F has pre-defined hook that transfers the focus to the
menu of the RootPane. Since the viewer doesn't have a menu
this just causes a loss of focus and subsequent unexpected
behavior of keyboard and mouse.
This makes it possible to create a derived class from Socket which is
not TCP based, without having VNCSConnectionST.cxx trying to call
setsockopt() on a non-socket.
Pierre Ossman [Mon, 6 Nov 2017 12:16:35 +0000 (13:16 +0100)]
Avoid corner case of applications rendering at frame rate
There is a problematic corner case where an application is updating
at exactly the same rate that we're sending update. In that case we
may miss updates regularly, getting a very uneven final frame rate.
Avoid this by introducing a slight offset when we start updating.
Pierre Ossman [Wed, 4 Oct 2017 14:21:57 +0000 (16:21 +0200)]
Push query connect timeout back in to Xvnc
It was moved to the common code in f8e3b34c6, but it was unreliable
because the state could sometimes get out of sync. Push it back in
to Xvnc since it isn't necessarily something all servers will have.
Pierre Ossman [Thu, 21 Sep 2017 13:43:58 +0000 (15:43 +0200)]
Switch back to low resolution mode on macOS
This is a revert of 6c0181c. Testing showed that we got a big
performance hit by enabling this, and we also saw some graphical
artifacts. More work is needed before this can be enabled by default.
Pierre Ossman [Mon, 18 Sep 2017 14:05:48 +0000 (16:05 +0200)]
Release pointer grab when cursor leaves window
We don't need the grab any more if the pointer cannot click on our
window. This makes it possible to shift focus to another application
when we aren't covering all monitors.
Rahul Kale [Wed, 12 Jul 2017 22:35:58 +0000 (00:35 +0200)]
rfb_win32: Use scan codes if available
If scan codes are available using QEMU Extended Keyboard Messages
from clients, use that to inject scancodes directly into the
system using the SendInput API.
No conversion is needed as Windows uses the same scancode encoding.
Signed-off-by: Rahul Kale <Rahul.Kale@barco.com> Signed-off-by: Peter Korsgaard <peter.korsgaard@barco.com>
Pierre Ossman [Tue, 16 May 2017 12:30:38 +0000 (14:30 +0200)]
Basic support for QEMU Extended Key Events
This adds the basic infrastructure and handshake for the QEMU
Extended Key Events extension. No viewer or server makes use of
the extra functionality yet though.
Pierre Ossman [Wed, 16 Aug 2017 13:20:20 +0000 (15:20 +0200)]
Respect modifiers in x0vncserver
Using XKeysymToKeycode() often gives the incorrect keycode as it
doesn't respect the current modifier state. Use XKB to find the
proper key instead.
This however also means that we need to track the mapping for all
pressed keys to make sure we know the correct keycode when it is
time to release the key.
Brian P. Hinz [Sun, 13 Aug 2017 00:19:50 +0000 (20:19 -0400)]
Fully implement support for alpha cursor pseudo encoding.
Alpha cursors are not supported in java on Windows so disable
it in that case. Ideally it would be nice to be able to test
whether or not the client OS supports it, but at the moment
MS Windows is the only one that I'm aware of that doesn't.
Brian P. Hinz [Sun, 6 Aug 2017 19:00:09 +0000 (15:00 -0400)]
Fixed issue where CLI paramters specified as "-param value" caused
a java.nio.BufferOverflowException while the same parameter specified
as "-param=value" worked fine.
x0vncserver: Use Xfixes to display cursors if available
https://github.com/TigerVNC/tigervnc/issues/361
This is a simple implementation that refetches and transforms the cursor
image every time it changes, and doesn't use the cursor naming functions
of the XFixes extension to save & cache cursor images.
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>