source: trunk/packages/invirt-vnc-client/debian/patches/add-control-alt-checkboxes.patch @ 1438

Last change on this file since 1438 was 1438, checked in by broder, 15 years ago

Isolate our patches to the VNC client from the upstream TightVNC
source

File size: 2.4 KB
  • ButtonPanel.java

    old new  
    2727import java.awt.event.*;
    2828import java.io.*;
    2929
    30 class ButtonPanel extends Panel implements ActionListener {
     30class ButtonPanel extends Panel implements ActionListener, ItemListener {
    3131
    3232  VncViewer viewer;
    3333  Button disconnectButton;
     
    3636  Button clipboardButton;
    3737  Button ctrlAltDelButton;
    3838  Button refreshButton;
     39  Checkbox altCheckbox;
     40  Checkbox ctrlCheckbox;
    3941
    4042  ButtonPanel(VncViewer v) {
    4143    viewer = v;
     
    6567    refreshButton.setEnabled(false);
    6668    add(refreshButton);
    6769    refreshButton.addActionListener(this);
     70   
     71    altCheckbox = new Checkbox("Alt");
     72    altCheckbox.setEnabled(false);
     73    add(altCheckbox);
     74    altCheckbox.addItemListener(this);
     75    ctrlCheckbox = new Checkbox("Control");
     76    ctrlCheckbox.setEnabled(false);
     77    add(ctrlCheckbox);
     78    ctrlCheckbox.addItemListener(this);
    6879  }
    6980
    7081  //
     
    103114
    104115  public void enableRemoteAccessControls(boolean enable) {
    105116    ctrlAltDelButton.setEnabled(enable);
     117    ctrlCheckbox.setEnabled(enable);
     118    altCheckbox.setEnabled(enable);
    106119  }
    107120
    108121  //
     
    150163      }
    151164    }
    152165  }
     166    public void itemStateChanged(ItemEvent evt) {
     167        viewer.moveFocusToDesktop();
     168        int state = evt.getStateChange();
     169        int extraModifiers = 0;
     170        if (altCheckbox.getState()) { extraModifiers |= InputEvent.ALT_MASK; }
     171        if (ctrlCheckbox.getState()) { extraModifiers |= InputEvent.CTRL_MASK; }
     172        viewer.vc.extraModifiers = extraModifiers;
     173    }
    153174}
    154175
  • invirt-vnc-client

    old new  
    7979
    8080  // True if we process keyboard and mouse events.
    8181  boolean inputEnabled;
     82  int extraModifiers = 0;
    8283
    8384  //
    8485  // The constructors.
     
    15101511        // Input enabled.
    15111512        synchronized(rfb) {
    15121513          try {
     1514            if (extraModifiers != 0) {
     1515              evt.setModifiers(evt.getModifiers() | extraModifiers);
     1516            }
    15131517            rfb.writeKeyEvent(evt);
    15141518          } catch (Exception e) {
    15151519            e.printStackTrace();
Note: See TracBrowser for help on using the repository browser.