private bool handleKeyUp(InputState state, Key key) { KeyUpEventArgs args = new KeyUpEventArgs { Key = key }; if (FocusedDrawable?.TriggerKeyUp(state, args) ?? false) { return(true); } return(keyboardInputQueue.Any(target => target.TriggerKeyUp(state, args))); }
/// <summary> /// Triggers key up events on drawables in <paramref cref="drawables"/> until it is handled. /// </summary> /// <param name="drawables">The drawables in the queue.</param> /// <param name="state">The input state.</param> /// <param name="args">The args.</param> /// <returns>Whether the key up event was handled.</returns> protected virtual bool PropagateKeyUp(IEnumerable <Drawable> drawables, InputState state, KeyUpEventArgs args) { var handledBy = drawables.FirstOrDefault(target => target.TriggerOnKeyUp(state, args)); if (handledBy != null) { Logger.Log($"KeyUp ({args.Key}) handled by {handledBy}.", LoggingTarget.Runtime, LogLevel.Debug); } return(handledBy != null); }
protected override bool OnKeyUp(InputState state, KeyUpEventArgs args) => acceptState(state);