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.
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.
Make all viewer parameters static. Viewer instances are isolated from each other by spawning a completely new process for each viewer, rather than simply starting a new thread. All dialogs were redesigned to better match the look of the native viewer, and also to be more tolerant of sizing differences between platforms.
6262bac introduced a regression that resulted in a 1 pixel border
around the window on some platforms. The underlying issue was
actually caused by overriding the getPreferredSize() method in
DesktopWindow and returning the scaled width & height, which
might not have been set to valid values.
Add multiple monitor spanning feature to java viewer
Adds support for spanning multiple monitors in "Extended" mode
to the Java viewer. Allows for spanning when maximizing in
addition to just full-screen mode. Seems a bit unpredictable on
MS Windows 7 (ie: depends on window placement, which screen is
set as primary, etc.), but this appears to be the behavior of
the OS itself.
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.
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.
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.
Fixes some regressions introduced in r5056. Losing window focus caused key modifiers to be left in an incorrect state. Special handling of AltGr key was being applied in cases where CTRL_L+ALT_L keys were depressed which also caused the modifiers to be left in an incorrect state. Corrected mapping of CTRL+ALT+SHIFT hotkeys to match F8 menu.
Fixes yet another case where the viewport background wasn't painted black when the desktop size was less than the viewport size. Also set both scrollbar policies just as a precaution.
Fixes a number of issues related to fullscreen mode. When switching out of fullscreen mode via the options dialog, setFullScreenWindow was being applied to the old reference, causing the whole screen to be blanked and unresponsive. The checkmark in the F8 menu could sometimes get out of sync with the state of the option. Cursor wasn't always being re-scaled when scale factor was changed. It seems that setCursor can still sometimes be passed a null pointer for the hotspot, so add back in a check that was removed in r5025
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.