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

This commit is contained in:
BDisp
2021-12-18 13:54:54 +00:00
parent 5d76ec2da5
commit 8c07643d42
2 changed files with 26 additions and 0 deletions

View File

@@ -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)

View File

@@ -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> ();