Răsfoiți Sursa

Fixes #1535. Added IsMouseDisabled prop to Application (#1546)

BDisp 3 ani în urmă
părinte
comite
f013627a24
2 a modificat fișierele cu 26 adăugiri și 0 ștergeri
  1. 9 0
      Terminal.Gui/Core/Application.cs
  2. 17 0
      UICatalog/UICatalog.cs

+ 9 - 0
Terminal.Gui/Core/Application.cs

@@ -159,6 +159,11 @@ namespace Terminal.Gui {
 		/// <value>The main loop.</value>
 		public static MainLoop MainLoop { get; private set; }
 
+		/// <summary>
+		/// Disable or enable the mouse in this <see cref="Application"/>
+		/// </summary>
+		public static bool IsMouseDisabled { get; set; }
+
 		/// <summary>
 		///   This event is raised on each iteration of the <see cref="MainLoop"/> 
 		/// </summary>
@@ -523,6 +528,10 @@ namespace Terminal.Gui {
 
 		static void ProcessMouseEvent (MouseEvent me)
 		{
+			if (IsMouseDisabled) {
+				return;
+			}
+
 			var view = FindDeepestView (Current, me.X, me.Y, out int rx, out int ry);
 
 			if (view != null && view.WantContinuousButtonPressed)

+ 17 - 0
UICatalog/UICatalog.cs

@@ -312,9 +312,26 @@ namespace UICatalog {
 			menuItems.Add (new MenuItem [] { null });
 			menuItems.Add (CreateSizeStyle ());
 			menuItems.Add (CreateAlwaysSetPosition ());
+			menuItems.Add (CreateDisabledEnabledMouse ());
 			return menuItems;
 		}
 
+		private static MenuItem [] CreateDisabledEnabledMouse ()
+		{
+			List<MenuItem> menuItems = new List<MenuItem> ();
+			var item = new MenuItem ();
+			item.Title = "_Disable/Enable Mouse";
+			item.Shortcut = Key.CtrlMask | Key.AltMask | (Key)item.Title.ToString ().Substring (1, 1) [0];
+			item.CheckType |= MenuItemCheckStyle.Checked;
+			item.Checked = Application.IsMouseDisabled;
+			item.Action += () => {
+				item.Checked = Application.IsMouseDisabled = !item.Checked;
+			};
+			menuItems.Add (item);
+
+			return menuItems.ToArray ();
+		}
+
 		static MenuItem [] CreateAlwaysSetPosition ()
 		{
 			List<MenuItem> menuItems = new List<MenuItem> ();