Complete rewrite of pixel buffer & decoder implementation.
Adds multi-threading, more robust support for different pixel formats,
and several new runtime options.
diff --git a/java/com/tigervnc/vncviewer/F8Menu.java b/java/com/tigervnc/vncviewer/F8Menu.java
index d7f9e48..0c67305 100644
--- a/java/com/tigervnc/vncviewer/F8Menu.java
+++ b/java/com/tigervnc/vncviewer/F8Menu.java
@@ -106,19 +106,24 @@
if (actionMatch(ev, exit)) {
cc.close();
} else if (actionMatch(ev, fullScreenCheckbox)) {
- cc.toggleFullScreen();
+ if (fullScreenCheckbox.isSelected())
+ cc.desktop.fullscreen_on();
+ else
+ cc.desktop.fullscreen_off();
} else if (actionMatch(ev, restore)) {
- if (fullScreen.getValue()) cc.toggleFullScreen();
- cc.viewport.setExtendedState(JFrame.NORMAL);
+ if (cc.desktop.fullscreen_active())
+ cc.desktop.fullscreen_off();
+ cc.desktop.setExtendedState(JFrame.NORMAL);
} else if (actionMatch(ev, minimize)) {
- if (fullScreen.getValue()) cc.toggleFullScreen();
- cc.viewport.setExtendedState(JFrame.ICONIFIED);
+ if (cc.desktop.fullscreen_active())
+ cc.desktop.fullscreen_off();
+ cc.desktop.setExtendedState(JFrame.ICONIFIED);
} else if (actionMatch(ev, maximize)) {
- if (fullScreen.getValue()) cc.toggleFullScreen();
- cc.viewport.setExtendedState(JFrame.MAXIMIZED_BOTH);
+ if (cc.desktop.fullscreen_active())
+ cc.desktop.fullscreen_off();
+ cc.desktop.setExtendedState(JFrame.MAXIMIZED_BOTH);
} else if (actionMatch(ev, clipboard)) {
- //ClipboardDialog dlg = new ClipboardDialog(cc);
- ClipboardDialog.showDialog(cc.viewport);
+ ClipboardDialog.showDialog(cc.desktop);
} else if (actionMatch(ev, f8)) {
cc.writeKeyEvent(MenuKey.getMenuKeySym(), true);
cc.writeKeyEvent(MenuKey.getMenuKeySym(), false);
@@ -134,7 +139,7 @@
} else if (actionMatch(ev, newConn)) {
VncViewer.newViewer();
} else if (actionMatch(ev, options)) {
- OptionsDialog.showDialog(cc.viewport);
+ OptionsDialog.showDialog(cc.desktop);
} else if (actionMatch(ev, save)) {
String title = "Save the TigerVNC configuration to file";
File dflt = new File(FileUtils.getVncHomeDir().concat("default.tigervnc"));
@@ -170,6 +175,24 @@
}
}
+ public void show(Component invoker, int x, int y) {
+ // lightweight components can't show in FullScreen Exclusive mode
+ /*
+ Window fsw = DesktopWindow.getFullScreenWindow();
+ GraphicsDevice gd = null;
+ if (fsw != null) {
+ gd = fsw.getGraphicsConfiguration().getDevice();
+ if (gd.isFullScreenSupported())
+ DesktopWindow.setFullScreenWindow(null);
+ }
+ */
+ super.show(invoker, x, y);
+ /*
+ if (fsw != null && gd.isFullScreenSupported())
+ DesktopWindow.setFullScreenWindow(fsw);
+ */
+ }
+
CConn cc;
JMenuItem restore, move, size, minimize, maximize;
JMenuItem exit, clipboard, ctrlAltDel, refresh;