private bool Keysym(bool pressed, Keys key, Keys extendedKey) { if (!pressed && pressedKeys.Count == 0) // we received key-up, but not key-down - ignore { return(true); } if (KeyHandler.handleExtras <Keys>(pressed, pressedKeys, KeyHandler.ExtraKeys, extendedKey, KeyHandler.ModifierKeys, ref modifierKeyPressedAlone)) { this.Focus(); return(true); } // on keyup, try to remove extended keys (i.e. LControlKey, LControlKey, RShiftKey, LShiftKey, RMenu, LMenu) // we need to do this here, because we cannot otherwise distinguish between Left and Right modifier keys on KeyUp if (!pressed) { List <Keys> extendedKeys = ConsoleKeyHandler.GetExtendedKeys(key); foreach (var k in extendedKeys) { pressedKeys.Remove(k); } } if (key == Keys.Tab || (key == (Keys.Tab | Keys.Shift))) { return(false); } return(false); }
internal XSVNCScreen(VM source, EventHandler resizeHandler, VNCTabView parent, string elevatedUsername, string elevatedPassword) : base() { this.ResizeHandler = resizeHandler; this.parentVNCTabView = parent; this.Source = source; this.KeyHandler = parentVNCTabView.KeyHandler; ElevatedUsername = elevatedUsername; ElevatedPassword = elevatedPassword; #pragma warning disable 0219 IntPtr _ = Handle; #pragma warning restore 0219 initSubControl(); //We're going to try and catch when the IP address changes for the VM, and re-scan for ports. if (source == null) { return; } Properties.Settings.Default.PropertyChanged += Default_PropertyChanged; VM_guest_metrics guestMetrics = Source.Connection.Resolve <VM_guest_metrics>(Source.guest_metrics); if (guestMetrics == null) { return; } cachedNetworks = guestMetrics.networks; guestMetrics.PropertyChanged += new PropertyChangedEventHandler(guestMetrics_PropertyChanged); }
protected override bool ProcessCmdKey(ref Message msg, Keys keyData) { const int WM_KEYDOWN = 0x100; const int WM_SYSKEYDOWN = 0x104; bool down = ((msg.Msg == WM_KEYDOWN) || (msg.Msg == WM_SYSKEYDOWN)); Keys key = keyData; if ((key & Keys.Control) == Keys.Control) { key = key & ~Keys.Control; } if ((key & Keys.Alt) == Keys.Alt) { key = key & ~Keys.Alt; } if ((key & Keys.Shift) == Keys.Shift) { key = key & ~Keys.Shift; } // use TranslateKeyMessage to identify if Left or Right modifier keys have been pressed/released Keys extKey = ConsoleKeyHandler.TranslateKeyMessage(msg); return(Keysym(down, key, extKey)); }