Fixes #2069. KeyDown and KeyUp events must run before OnKeyDown and OnKeyUp.

This commit is contained in:
BDisp
2022-09-28 00:07:55 +01:00
parent da6e2d2de3
commit 702ef46727
3 changed files with 87 additions and 4 deletions

View File

@@ -370,12 +370,14 @@ namespace Terminal.Gui {
return keyMod != Key.Null ? keyMod | key : key;
}
Action<KeyEvent> keyDownHandler;
Action<KeyEvent> keyHandler;
Action<KeyEvent> keyUpHandler;
private CursorVisibility savedCursorVisibility;
public override void PrepareToRun (MainLoop mainLoop, Action<KeyEvent> keyHandler, Action<KeyEvent> keyDownHandler, Action<KeyEvent> keyUpHandler, Action<MouseEvent> mouseHandler)
{
this.keyDownHandler = keyDownHandler;
this.keyHandler = keyHandler;
this.keyUpHandler = keyUpHandler;
@@ -400,6 +402,7 @@ namespace Terminal.Gui {
keyModifiers.Ctrl = true;
}
keyDownHandler (new KeyEvent (map, keyModifiers));
keyHandler (new KeyEvent (map, keyModifiers));
keyUpHandler (new KeyEvent (map, keyModifiers));
}