[[project @ 8] james.moger**20090109151307 Ignore-this: 6e132ed09d9a0a81e3e89f8687d868ef issue #9 Implemented ctrl-alt-del. Hide scaling button for current scaling mode. ] hunk ./androidVNC/src/android/androidVNC/RfbProto.java 1067 + void writeCtrlAltDel() throws IOException { + final int DELETE = 0xffff; + final int CTRLALT = CTRL_MASK | ALT_MASK; + try { + // Press + eventBufLen = 0; + writeModifierKeyEvents(CTRLALT); + writeKeyEvent(DELETE, true); + os.write(eventBuf, 0, eventBufLen); + + // Release + eventBufLen = 0; + writeModifierKeyEvents(CTRLALT); + writeKeyEvent(DELETE, false); + + // Reset VNC server modifiers state + writeModifierKeyEvents(0); + os.write(eventBuf, 0, eventBufLen); + } catch (IOException e) { + e.printStackTrace(); + } + } + hunk ./androidVNC/src/android/androidVNC/VncCanvas.java 566 + + public void ctrlAltDel() { + try { + rfb.writeCtrlAltDel(); + } catch (IOException e) { + e.printStackTrace(); + } + } hunk ./androidVNC/src/android/androidVNC/VncCanvasActivity.java 56 + private final static int MENU_ITEM_CTRLALTDEL = Menu.FIRST + 5; hunk ./androidVNC/src/android/androidVNC/VncCanvasActivity.java 116 + menu.add(Menu.NONE, MENU_ITEM_CTRLALTDEL, 0, "Ctrl-Alt-Del").setShortcut('6', 'a').setIcon(android.R.drawable.ic_menu_share); hunk ./androidVNC/src/android/androidVNC/VncCanvasActivity.java 121 + /** {@inheritDoc} */ + @Override + public boolean onPrepareOptionsMenu(Menu menu) { + // Hide the button for the current scaling mode + boolean isFitToScreen = vncCanvas.getScaleType() == ScaleType.FIT_CENTER; + menu.findItem(MENU_ITEM_ONE2ONE).setVisible(isFitToScreen); + menu.findItem(MENU_ITEM_FITSCREEN).setVisible(!isFitToScreen); + return true; + } + hunk ./androidVNC/src/android/androidVNC/VncCanvasActivity.java 165 - } + case MENU_ITEM_CTRLALTDEL: + vncCanvas.ctrlAltDel(); + return true; + }