public bool ShouldActivate(ExtendedModifierKeys modifiers) { if (modifiers != ExtendedModifierKeys.Control && modifiers != ExtendedModifierKeys.ControlAlt && modifiers != ExtendedModifierKeys.ControlShift) { return(modifiers == ExtendedModifierKeys.ControlAltShift); } return(true); }
private ExtendedModifierKeys ComputeExtendedModifierKeys() { ExtendedModifierKeys extendedModifierKeys = (ExtendedModifierKeys)Keyboard.Modifiers; if (Keyboard.IsKeyDown(Key.Space)) { extendedModifierKeys |= ExtendedModifierKeys.Space; } return(extendedModifierKeys); }
public void TrySwitchModifierKeyBehavior(KeyEventArgs args) { if (this.eventRouter.ActiveBehavior == null || this.eventRouter.IsDragging || (this.eventRouter.IsButtonDown || !this.eventRouter.ActiveBehavior.ToolBehaviorContext.View.Artboard.IsMouseOver) || this.eventRouter.IsEditingText) { return; } if (this.activeModifierKeyBehavior != null && !this.eventRouter.ContainsBehavior(this.activeModifierKeyBehavior)) { this.activeModifierKeyBehavior = (ToolBehavior)null; this.activeModifierKeyBehaviorFactory = (IModifierKeyBehaviorFactory)null; } ExtendedModifierKeys extendedModifierKeys = this.ComputeExtendedModifierKeys(); if (this.activeModifierKeyBehaviorFactory != null && !this.activeModifierKeyBehaviorFactory.ShouldActivate(extendedModifierKeys)) { this.RemoveActiveModifierKeyBehavior(); } if (args != null && !this.eventRouter.IsDragging) { Key key = args.Key == Key.System ? args.SystemKey : args.Key; if (extendedModifierKeys == ExtendedModifierKeys.None) { this.suspendingMode = false; return; } if (!this.modifierKeys.Contains(key) && key != Key.ImeProcessed) { this.RemoveActiveModifierKeyBehavior(); this.suspendingMode = true; } if (this.suspendingMode) { return; } } if (this.activeModifierKeyBehaviorFactory != null) { return; } foreach (IModifierKeyBehaviorFactory keyBehaviorFactory in this.behaviorFactories) { if (keyBehaviorFactory.ShouldActivate(extendedModifierKeys)) { ToolBehavior instance = keyBehaviorFactory.CreateInstance(this.eventRouter.ActiveBehavior.ToolBehaviorContext); if (instance != null) { this.activeModifierKeyBehavior = instance; this.activeModifierKeyBehaviorFactory = keyBehaviorFactory; this.eventRouter.PushBehavior(this.activeModifierKeyBehavior); break; } } } }
public bool ShouldActivate(ExtendedModifierKeys modifiers) { return(modifiers == ExtendedModifierKeys.Space); }