// #{GxwCbkHost_ public static final boolean ExecKeyEvent(GxwCbkHost host, KeyEvent e) { boolean rv = true; int id = e.getID(), val = e.getKeyCode(); boolean isAltF4 = false; if (e.isAltDown() && val == IptKey_.F4.Val()) { isAltF4 = true; } if (id == KeyEvent.KEY_TYPED) { IptEvtDataKeyHeld keyHeldData = IptEvtDataKeyHeld.char_(e.getKeyChar()); rv = host.KeyHeldCbk(keyHeldData); if (keyHeldData.Handled()) rv = false; } else { if (e.isShiftDown()) val |= IptKey_.Shift.Val(); if (e.isControlDown()) val |= IptKey_.Ctrl.Val(); if (e.isAltDown()) val |= IptKey_.Alt.Val(); IptEvtDataKey keyData = IptEvtDataKey.int_(val); // Tfds.Write(e.getKeyChar(), e.getKeyCode(), val, id); if (id == KeyEvent.KEY_PRESSED) rv = host.KeyDownCbk(keyData); else if (id == KeyEvent.KEY_RELEASED) rv = host.KeyUpCbk(keyData); if (keyData.Handled()) rv = false; // was false } if (isAltF4) { e.consume(); } if (e.getKeyCode() == KeyEvent.VK_ALT) e.consume(); // force consume of alt-keys; occurs when alt-f4ing out of video app (though // not audio app) return rv; }