X-Git-Url: http://xvm.mit.edu/gitweb/invirt/packages/invirt-vnc-client.git/blobdiff_plain/0d88c0c9bd61f710cba0a29af49397fbc1c4902c..bcb39a3295741f6dddd5d7e3a1db23b62baa38b4:/debian/patches/add-control-alt-checkboxes.patch diff --git a/debian/patches/add-control-alt-checkboxes.patch b/debian/patches/add-control-alt-checkboxes.patch new file mode 100644 index 0000000..3a9e797 --- /dev/null +++ b/debian/patches/add-control-alt-checkboxes.patch @@ -0,0 +1,83 @@ +Index: invirt-vnc-client/ButtonPanel.java +=================================================================== +--- invirt-vnc-client.orig/ButtonPanel.java 2008-10-31 06:08:45.000000000 -0400 ++++ invirt-vnc-client/ButtonPanel.java 2008-10-31 06:09:10.000000000 -0400 +@@ -27,7 +27,7 @@ + import java.awt.event.*; + import java.io.*; + +-class ButtonPanel extends Panel implements ActionListener { ++class ButtonPanel extends Panel implements ActionListener, ItemListener { + + VncViewer viewer; + Button disconnectButton; +@@ -36,6 +36,8 @@ + Button clipboardButton; + Button ctrlAltDelButton; + Button refreshButton; ++ Checkbox altCheckbox; ++ Checkbox ctrlCheckbox; + + ButtonPanel(VncViewer v) { + viewer = v; +@@ -65,6 +67,15 @@ + refreshButton.setEnabled(false); + add(refreshButton); + refreshButton.addActionListener(this); ++ ++ altCheckbox = new Checkbox("Alt"); ++ altCheckbox.setEnabled(false); ++ add(altCheckbox); ++ altCheckbox.addItemListener(this); ++ ctrlCheckbox = new Checkbox("Control"); ++ ctrlCheckbox.setEnabled(false); ++ add(ctrlCheckbox); ++ ctrlCheckbox.addItemListener(this); + } + + // +@@ -103,6 +114,8 @@ + + public void enableRemoteAccessControls(boolean enable) { + ctrlAltDelButton.setEnabled(enable); ++ ctrlCheckbox.setEnabled(enable); ++ altCheckbox.setEnabled(enable); + } + + // +@@ -150,5 +163,13 @@ + } + } + } ++ public void itemStateChanged(ItemEvent evt) { ++ viewer.moveFocusToDesktop(); ++ int state = evt.getStateChange(); ++ int extraModifiers = 0; ++ if (altCheckbox.getState()) { extraModifiers |= InputEvent.ALT_MASK; } ++ if (ctrlCheckbox.getState()) { extraModifiers |= InputEvent.CTRL_MASK; } ++ viewer.vc.extraModifiers = extraModifiers; ++ } + } + +Index: invirt-vnc-client/VncCanvas.java +=================================================================== +--- invirt-vnc-client.orig/VncCanvas.java 2008-10-31 06:08:45.000000000 -0400 ++++ invirt-vnc-client/VncCanvas.java 2008-10-31 06:09:10.000000000 -0400 +@@ -79,6 +79,7 @@ + + // True if we process keyboard and mouse events. + boolean inputEnabled; ++ int extraModifiers = 0; + + // + // The constructors. +@@ -1510,6 +1511,9 @@ + // Input enabled. + synchronized(rfb) { + try { ++ if (extraModifiers != 0) { ++ evt.setModifiers(evt.getModifiers() | extraModifiers); ++ } + rfb.writeKeyEvent(evt); + } catch (Exception e) { + e.printStackTrace();