2
0
Tig 1 жил өмнө
parent
commit
2acc235b17

+ 16 - 11
Terminal.Gui/Application.cs

@@ -1590,17 +1590,22 @@ public static partial class Application
 
         //Debug.WriteLine ($"OnMouseEvent: ({a.MouseEvent.X},{a.MouseEvent.Y}) - {a.MouseEvent.Flags}");
 
-        while (view is {} && !view.OnMouseEvent (me))
-        {
-            if (view is Adornment ad)
-            {
-                view = ad.Parent.SuperView;
-            }
-            else
-            {
-                view = view.SuperView;
-            }
-        }
+        if (view.OnMouseEvent (me))
+        {
+            // Should we bubble up the event, if it is not handled?
+            //return;
+        }
+        //while (view is {} && !view.OnMouseEvent (me))
+        //{
+        //    if (view is Adornment ad)
+        //    {
+        //        view = ad.Parent.SuperView;
+        //    }
+        //    else
+        //    {
+        //        view = view.SuperView;
+        //    }
+        //}
 
         BringOverlappedTopToFront ();
     }

+ 2 - 2
Terminal.Gui/View/Adornment/Adornment.cs

@@ -291,7 +291,7 @@ public class Adornment : View
                 Application.GrabMouse (this);
             }
 
-            return true;
+            return mouseEvent.Handled = true;
         }
 
         if (mouseEvent.Flags is (MouseFlags.Button1Pressed | MouseFlags.ReportMousePosition))
@@ -324,7 +324,7 @@ public class Adornment : View
                 Parent.X = nx;
                 Parent.Y = ny;
 
-                return true;
+                return mouseEvent.Handled = true;
             }
         }
 

+ 3 - 4
Terminal.Gui/View/ViewMouse.cs

@@ -156,6 +156,8 @@ public partial class View
                     // Set the focus, but don't invoke Accept
                     SetFocus ();
                 }
+
+                args.Handled = true;
             }
         }
 
@@ -210,9 +212,7 @@ public partial class View
         if (!Enabled)
         {
             // QUESTION: Is this right? Should a disabled view eat mouse clicks?
-            args.Handled = true;
-
-            return true;
+            return args.Handled = true;
         }
 
         MouseClick?.Invoke (this, args);
@@ -224,7 +224,6 @@ public partial class View
 
         if (!HasFocus && CanFocus)
         {
-            args.Handled = true;
             args.Handled = true;
             SetFocus ();
         }