Просмотр исходного кода

Merge branch 'master' into unix-mouse-features

BDisp 5 лет назад
Родитель
Сommit
08e77e5a42
4 измененных файлов с 14 добавлено и 27 удалено
  1. 0 10
      Terminal.Gui/Core.cs
  2. 5 9
      Terminal.Gui/Views/Menu.cs
  3. 4 3
      UICatalog/Program.cs
  4. 5 5
      UICatalog/Scenarios/Keys.cs

+ 0 - 10
Terminal.Gui/Core.cs

@@ -1070,16 +1070,6 @@ namespace Terminal.Gui {
 			public KeyEvent KeyEvent { get; set; }
 		}
 
-		public class KeyEventEventArgs : EventArgs {
-			public KeyEventEventArgs(KeyEvent ke) => KeyEvent = ke;
-			public KeyEvent KeyEvent { get; set; }
-		}
-
-		public class KeyEventEventArgs : EventArgs {
-			public KeyEventEventArgs(KeyEvent ke) => KeyEvent = ke;
-			public KeyEvent KeyEvent { get; set; }
-		}
-
 		/// <summary>
 		/// Invoked when a character key is pressed and occurs after the key up event.
 		/// </summary>

+ 5 - 9
Terminal.Gui/Views/Menu.cs

@@ -360,7 +360,7 @@ namespace Terminal.Gui {
 		public override bool ProcessHotKey (KeyEvent keyEvent)
 		{
 			// To ncurses simulate a AltMask key pressing Alt+Space because
-			// it can´t detect an alone special key down was pressed.
+			// it can�t detect an alone special key down was pressed.
 			if (keyEvent.IsAlt && keyEvent.Key == Key.AltMask) {
 				OnKeyDown (keyEvent);
 				return true;
@@ -562,7 +562,8 @@ namespace Terminal.Gui {
 		}
 
 		bool openedByAltKey;
-		///<inheritdoc cref="KeyDown"/>
+
+		///<inheritdoc cref="OnKeyDown"/>
 		public override bool OnKeyDown (KeyEvent keyEvent)
 		{
 			if (keyEvent.IsAlt) {
@@ -573,12 +574,7 @@ namespace Terminal.Gui {
 			return false;
 		}
 
-		/// <summary>
-		/// Track Alt key-up events. On Windows, when a user releases Alt (without another key), the menu gets focus but doesn't open.
-		/// We mimic that behavior here.
-		/// </summary>
-		/// <param name="keyEvent"></param>
-		/// <returns></returns>
+		///<inheritdoc cref="OnKeyUp"/>
 		public override bool OnKeyUp (KeyEvent keyEvent)
 		{
 			if (keyEvent.IsAlt) {
@@ -1000,7 +996,7 @@ namespace Terminal.Gui {
 			}
 
 			// To ncurses simulate a AltMask key pressing Alt+Space because
-			// it can´t detect an alone special key down was pressed.
+			// it can�t detect an alone special key down was pressed.
 			if (kb.IsAlt && kb.Key == Key.AltMask && openMenu == null) {
 				OnKeyDown (kb);
 				OnKeyUp (kb);

+ 4 - 3
UICatalog/Program.cs

@@ -148,7 +148,8 @@ namespace UICatalog {
 			}
 
 			_top = Application.Top;
-			_top.OnKeyUp += KeyUpHandler;
+
+			_top.KeyUp += KeyUpHandler;
 			_top.Add (_menu);
 			_top.Add (_leftPane);
 			_top.Add (_rightPane);
@@ -235,7 +236,7 @@ namespace UICatalog {
 		/// to not be impacted. Same as for tabs.
 		/// </summary>
 		/// <param name="ke"></param>
-		private static void KeyUpHandler (KeyEvent ke)
+		private static void KeyUpHandler (object sender, View.KeyEventEventArgs a)
 		{
 			if (_runningScenario != null) {
 				//switch (ke.Key) {
@@ -245,7 +246,7 @@ namespace UICatalog {
 				//case Key.Enter:
 				//	break;
 				//}
-			} else if (ke.Key == Key.Tab || ke.Key == Key.BackTab) {
+			} else if (a.KeyEvent.Key == Key.Tab || a.KeyEvent.Key == Key.BackTab) {
 				// BUGBUG: Work around Issue #434 by implementing our own TAB navigation
 				if (_top.MostFocused == _categoryListView)
 					_top.SetFocus (_rightPane);

+ 5 - 5
UICatalog/Scenarios/Keys.cs

@@ -43,8 +43,8 @@ namespace UICatalog {
 			public override bool ProcessColdKey (KeyEvent keyEvent)
 			{
 				_processColdKeyList.Add (keyEvent.ToString ());
-				return base.ProcessHotKey (keyEvent);
 
+				return base.ProcessColdKey (keyEvent);
 			}
 		}
 
@@ -92,7 +92,7 @@ namespace UICatalog {
 			};
 			Win.Add (labelKeypress);
 
-			Win.OnKeyPress += (KeyEvent keyEvent) => labelKeypress.Text = keyEvent.ToString ();
+			Win.KeyPress += (sender, a) => labelKeypress.Text = a.KeyEvent.ToString ();
 
 			// Key stroke log:
 			var keyLogLabel = new Label ("Key stroke log:") {
@@ -119,9 +119,9 @@ namespace UICatalog {
 				keyStrokeListView.MoveDown ();
 			}
 
-			Win.OnKeyDown += (KeyEvent keyEvent) => KeyDownPressUp (keyEvent, "Down");
-			Win.OnKeyPress += (KeyEvent keyEvent) => KeyDownPressUp (keyEvent, "Press");
-			Win.OnKeyUp += (KeyEvent keyEvent) => KeyDownPressUp (keyEvent, "Up");
+			Win.KeyDown += (sender, a) => KeyDownPressUp (a.KeyEvent, "Down");
+			Win.KeyPress += (sender, a) => KeyDownPressUp (a.KeyEvent, "Press");
+			Win.KeyUp += (sender, a) => KeyDownPressUp (a.KeyEvent, "Up");
 
 			// ProcessKey log:
 			// BUGBUG: Label is not positioning right with Pos, so using TextField instead