Pierre Ossman [Mon, 14 Jul 2014 11:20:24 +0000 (13:20 +0200)]
Re-init VNC extension on server reset
fc23895 blocked out a bit too much code when trying to make
libvnc handle server resets. Even though configuration should
only be handled once, the underlying VNC extension needs to
be reinitilised as the X core has removed all extensions on
reset.
Pierre Ossman [Wed, 22 Jan 2014 10:28:05 +0000 (11:28 +0100)]
Consistent use of stride vs pitch
Consistently use the term stride rather than pitch. Also
consistently represent the stride in number of pixels rather
than number of bytes. There is so much code that assumes
proper alignment already that we do not need the extra resolution.
Pierre Ossman [Mon, 17 Mar 2014 13:42:10 +0000 (14:42 +0100)]
Remove magic JPEG variables from ConnParams
Custom compression level and JPEG on/off are not inherent parts of
the protocol negotiation so they do not belong in ConnParams. Let the
UI frontend handle such things instead.
Pierre Ossman [Fri, 28 Feb 2014 10:54:34 +0000 (11:54 +0100)]
Converting to RGB might involve a precision increase
Need to do more than a simple shift to get the appropriate
new value. This isn't quite as exact as a proper multiplication
and division, but the error is so small it's not worth the
extra cycles.
Pierre Ossman [Wed, 19 Mar 2014 13:35:14 +0000 (13:35 +0000)]
This list isn't properly maintained so let's add a disclaimer.
People looking for proper attribution will have to check individual
files and repository history.
Pierre Ossman [Wed, 19 Mar 2014 12:16:48 +0000 (12:16 +0000)]
The ZRLE decoder relied on an assert() for boundary checks. A default
Release build however will remove all asserts making it possible to
overrun this buffer. This could be exploited by a malicious server.
This issue has been assigned CVE-2014-0011. Patch by Tim Waugh for
Red Hat.
Brian Hinz [Wed, 19 Feb 2014 05:19:37 +0000 (05:19 +0000)]
Fixes problems with cmake detection of GnuTLS. The current CMakeLists.txt uses check_function_exists to identify legacy versions of GnuTLS but cmake performs this test by linking a small test program. If libgnutls, libgcrypt, or libgpg-error are outside the default library search path, linking the test program fails even though gnutls and it's dependencies are installed. This patch makes it possible to specify the location of each of the three libraries independently and only as needed.
Brian Hinz [Sat, 11 Jan 2014 23:30:50 +0000 (23:30 +0000)]
r5142 and r5149 borrowed code from the TurboVNC viewer, which has different Configuration parameter logic. This caused an exception in the usage() method
Brian Hinz [Sat, 11 Jan 2014 23:07:42 +0000 (23:07 +0000)]
r5138 did not completely resolve the problem with clipboard data consuming too much heap space. Large amounts of clipboard data could still cause the heap size to grow to huge sizes. This patch tries to address the problem by opening a Reader to the underlying IO stream and then reading only up to MaxCutText characters. The garbage collector is invoked manually rather than waiting for the JVM to do it in order to prevent the heap size from growing in between JVM invoked garbage collections.
Pierre Ossman [Tue, 7 Jan 2014 15:28:45 +0000 (15:28 +0000)]
Make sure the fill function pointer gets updated if the
managed pixel buffer changes format. Also add a bit more
protection for switching pixel format as the base classes
aren't really designed for that. Fixes a crash with the
mouse pointer in WinVNC.
Based on work done by Daniel Wyatt (dewyatt).
Brian Hinz [Thu, 2 Jan 2014 20:35:52 +0000 (20:35 +0000)]
Release all downKeys when the focus is lost, otherwise the state of the keyboard will be inconsistent when the focus is regained. Also, the direction of the key release was incorrect in r5147.
Brian Hinz [Thu, 2 Jan 2014 01:23:56 +0000 (01:23 +0000)]
Re-introduces embedded applet mode for the java viewer. On Windows and Linux, the embedded applet can be dragged from the browser window and detached from the browser process. The mouse gesture for detaching the applet is ALT+drag on Windows and SHIFT+drag on Linux.
Brian Hinz [Sun, 29 Dec 2013 16:30:32 +0000 (16:30 +0000)]
Another overhaul of the key event handlers. There was a fundamental flaw in the previous implementation due to the fact that java key modifiers associated with a key_pressed or key_released event are reported with respect to each particular event. Thus, for example a key sequence of CTRL press, letter press, CTRL release, letter release never sends the corresponding release for the CTRL+letter down event. Key events are now synchronized on a monitor object to help ensure that the key sequence is preserved. This implementation mirrors the fltk viewer quite closely and, as far as I can tell, is capable of sending all of the same keysyms.
Brian Hinz [Mon, 2 Dec 2013 02:53:10 +0000 (02:53 +0000)]
Added attributes to the Java viewer MANIFEST file in order to conform to upcoming JRE requirements. Added support for specifying a signing certificate in place of the self-signed certificate.
Brian Hinz [Sun, 1 Dec 2013 23:07:07 +0000 (23:07 +0000)]
Copied Lion fullScreen code from TurboVNC viewer. This is a more robust implementation and does not suffer from Java bugs 8009911 or 4783448 like the existing code did. CMakeLists file was also updated to be more similar to the TurboVNC cmake file. This wasn't strictly necessary but it simplifies things a bit.
Brian Hinz [Thu, 28 Nov 2013 16:26:08 +0000 (16:26 +0000)]
Added 'contrib' folder to store patches necessary to build external dependecies, distribution-specific packaging files, etc. Also added a delimiter to the end of the fltk patch script defined in BUILDING.txt to make it easier to parse this script out for automated builds.
Brian Hinz [Sat, 23 Nov 2013 05:05:21 +0000 (05:05 +0000)]
Fixes a condition where too much data on the local clipboard causes the client to exceed the max heap size and exit. Since the server will, by default, discard clipboard transfers greater than 256KB anyway, a parameter was added which sets the default max clipboard size that the client will hold to 256KB also.
Pierre Ossman [Wed, 6 Nov 2013 15:27:04 +0000 (15:27 +0000)]
Some applications probe for clipboard formats using the
trial-and-error method rather than asking for TARGETS. We
need to make sure we properly report unsupported formats
back to these.
Pierre Ossman [Thu, 5 Sep 2013 14:25:40 +0000 (14:25 +0000)]
Printing the clipboard data is very annoying as it could
include line breaks, things with the wrong character encoding
and god knows what. Just print the size of the data instead.
Pierre Ossman [Thu, 30 May 2013 14:50:57 +0000 (14:50 +0000)]
Some applications (e.g. wine and rdesktop) tend to misbehave
when we use fake shift to get different symbols on the numpad.
So avoid using fake shifts on NumLock related keys and hope
that other applications won't get upset by getting the
non-numpad keysym counterparts.
Pierre Ossman [Thu, 23 May 2013 11:42:41 +0000 (11:42 +0000)]
XkbTranslateKeyCode() is not implemented according to
specification in any system I can find, so change our code
to follow reality rather than specification.
Pierre Ossman [Wed, 22 May 2013 11:59:38 +0000 (11:59 +0000)]
Apparently it is more kosher to completely disassociate an
output from its CRTC than just removing the mode when
disabling an output. This is what "xrandr --off" does.
Pierre Ossman [Wed, 22 May 2013 11:47:08 +0000 (11:47 +0000)]
Automatically update the connection state for RandR
outputs in Xvnc as virtual displays become enabled/disabled.
This seems to make applications happier than just
clearing the mode.