Brian Hinz [Sat, 12 Jan 2013 01:17:35 +0000 (01:17 +0000)]
Fixes a number of issues related to cursor handling, including "invalid hotspot" exception caused when cursor hotspot is outside the maximum cursor size supported by the toolkit on the client. Also, local cursor was not being drawn properly when the display size was scaled.
DRC [Mon, 7 Jan 2013 22:24:01 +0000 (22:24 +0000)]
Check the generated icons into the build tree. This solves a couple of issues: (1) it eliminates the build dependency on ImageMagick, which was not documented and which creates a hard-to-diagnose build failure on platforms on which it isn't available, and (2) the build was completely broken on Windows, because Windows has a convert.exe program that is part of the operating system, and the TigerVNC build system was finding this and attempting to use it to generate the icons.
Brian Hinz [Sun, 16 Dec 2012 20:35:39 +0000 (20:35 +0000)]
Make exception handling more user friendly. Not all exceptions are 'errors' (for example, exiting the server intentionally via the window manager's logoff button).
Pierre Ossman [Wed, 17 Oct 2012 07:59:20 +0000 (07:59 +0000)]
Starting in full screen was misbehaving because we were waiting
for a FL_FULLSCREEN event to set things up properly, and FLTK
doesn't emit this for a hidden window.
Pierre Ossman [Wed, 3 Oct 2012 12:21:54 +0000 (12:21 +0000)]
XFCE's window manager did not interact well with the code that avoided
accidental legacy full screen requests. Seems we need to sort that
FIXME out sooner rather than later.
Pierre Ossman [Tue, 2 Oct 2012 14:45:10 +0000 (14:45 +0000)]
Using maximize and full screen at the same time on OS X would misbehave
as we would first create a full screen window, then resize it to a
maximized site. Reorganise things a bit so that we get sensible
behaviour.
Brian Hinz [Sat, 1 Sep 2012 19:24:26 +0000 (19:24 +0000)]
Forces all dialogs except for the clipboard to be modal. Fixes cases where dialogs are not brought to the front while in fullscreen mode. Corrects a few corner cases where viewer did not exit properly.
Brian Hinz [Sun, 26 Aug 2012 21:19:19 +0000 (21:19 +0000)]
The x509ca and x509crl parameters were being set to the value of the button text. The parameter values are already set by the jfilechooser called from the options dialog, so no need to set them again anyway.
Brian Hinz [Sun, 26 Aug 2012 21:17:00 +0000 (21:17 +0000)]
Make the window actually occupy the full screen in full-screen mode (without this, other windows, such as the taskbar on Linux, will display in front of it.). Additional fixes for various full-screen mode issues (Setting FullScreen checkbox in options menu had no effect, null pointer, etc. When fullScreen and scaling options are changed simultaneously in the dialog, collapse the viewport changes into a single operation. There is still a modality issue on OS-X that will be addressed in a later patch.
Brian Hinz [Sun, 26 Aug 2012 21:02:22 +0000 (21:02 +0000)]
Make sure we send a full FBUR whenever forceNonincremental=true (which it is during the initial FBUR.) This specifically fixes an issue whereby a black screen would be displayed when initially connecting to the OS X built-in VNC server.
Brian Hinz [Sun, 26 Aug 2012 18:24:15 +0000 (18:24 +0000)]
Refactor the handshake code from first principles to remove code that was borrowed from Netty, which is released under an incompatible license (Apache v2.) Since our SSLEngineManager class was loosely inspired by, but no code was actually borrowed from, the Oracle JSSE examples, it is my opinion that it was incorrect to attribute copyright to Oracle, so that message has been removed (their examples are released under a BSD-style license, anyhow, so it's a non-issue.)
Brian Hinz [Sun, 26 Aug 2012 18:22:24 +0000 (18:22 +0000)]
Remove the AWTPixelBuffer class. After switching to using rasters in BIPixelBuffer, we can no longer find a case in which AWTPixelBuffer performs faster.
Brian Hinz [Sun, 26 Aug 2012 18:20:15 +0000 (18:20 +0000)]
Significantly improve performance by eliminating the intermediary MemoryImageSource and instead directly modifying the pixels in the BufferedImage. Supposedly, doing this causes the BufferedImage to become unmanaged. At one time, unmanaged images weren't hardware-accelerated on some platforms, but that doesn't seem to be the case with Java 1.5 and later.
Pierre Ossman [Thu, 23 Aug 2012 14:53:36 +0000 (14:53 +0000)]
X11 window managers are very buggy when it comes to having a window start
in full screen mode. So we'll resort to creating a normal window, and then
switching to full screen once it is mapped. Unfortunately it means we need
to handle delaying some resize handling.
Peter Åstrand [Thu, 9 Aug 2012 07:33:08 +0000 (07:33 +0000)]
Remove the in-tree versin of FLTK. Maintaining such a copy is way too
much work, and it's constantly out of sync. Let's document what the
main developers (ie Cendio) are using instead.
Peter Åstrand [Wed, 8 Aug 2012 11:49:01 +0000 (11:49 +0000)]
Make it possible to load and save configuration files. Also, when
connecting, the options are saved as default settings. This patch
fixes SF bugs 3481470 and 3499216.
Pierre Ossman [Fri, 20 Jul 2012 10:47:00 +0000 (10:47 +0000)]
We were not handling the "sync next" fence properly as we sent the response
right after we got the request (instead of waiting for the next command).
This created a race where we could lose pixel format sync between the client
and the server.
Pierre Ossman [Thu, 19 Jul 2012 08:40:48 +0000 (08:40 +0000)]
Implicit drawing operations (like window borders) are done by accessing
the screen pixmap directly. That means that hooking windows is insufficient.
The code now assumes that the drawable is a visible window, or the screen
pixmap (IOW, that all coordinates are screen relative). Had to restructure
some code that only worked on windows to get this working.
Pierre Ossman [Fri, 13 Jul 2012 11:22:55 +0000 (11:22 +0000)]
Implement client side multi-head support. Requires a FLTK patched to support
fullscreen over multiple monitors. Will properly report screen configuration
to the server, provided the server supports it.
Pierre Ossman [Fri, 13 Jul 2012 10:29:15 +0000 (10:29 +0000)]
Add back support for letting the client reconfigure the screen, this time
with all the RandR 1.2 multi-head goodness. Tested with Xvnc, but should
also work with libvnc.so, although it will only work for simpler cases
there.
Pierre Ossman [Thu, 12 Jul 2012 11:31:42 +0000 (11:31 +0000)]
Redo the RandR code in Xvnc/libvnc to use the modern 1.2 API. The old
stuff was a bit buggy, and it didn't really allow us to move forward.
This commit temporarily removes the ability for the client to resize the
session. It will be readded for Xvnc in a later commit. libvnc will be
without that functionality for now, as it is very difficult to get right
there.