diff --git a/Terminal.Gui/Views/Button.cs b/Terminal.Gui/Views/Button.cs index df253667b..7ed27082e 100644 --- a/Terminal.Gui/Views/Button.cs +++ b/Terminal.Gui/Views/Button.cs @@ -203,29 +203,19 @@ namespace Terminal.Gui { /// public Action Clicked; - /// - /// Method invoked when a mouse event is generated - /// - /// - /// true, if the event was handled, false otherwise. - public override bool OnMouseEvent (MouseEvent mouseEvent) + /// + public override bool MouseEvent (MouseEvent me) { - MouseEventArgs args = new MouseEventArgs (mouseEvent); - MouseClick?.Invoke (args); - if (args.Handled) - return true; - if (MouseEvent (mouseEvent)) - return true; - - - if (mouseEvent.Flags == MouseFlags.Button1Clicked || mouseEvent.Flags == MouseFlags.Button1DoubleClicked || - mouseEvent.Flags == MouseFlags.Button1TripleClicked) { - if (!HasFocus && SuperView != null) { - SuperView.SetFocus (this); - SetNeedsDisplay (); + if (me.Flags == MouseFlags.Button1Clicked || me.Flags == MouseFlags.Button1DoubleClicked || + me.Flags == MouseFlags.Button1TripleClicked) { + if (CanFocus) { + if (!HasFocus) { + SuperView?.SetFocus (this); + SetNeedsDisplay (); + } + Clicked?.Invoke (); } - Clicked?.Invoke (); return true; } return false; diff --git a/UICatalog/Scenarios/Clipping.cs b/UICatalog/Scenarios/Clipping.cs index d2b9e9dd7..6231efe40 100644 --- a/UICatalog/Scenarios/Clipping.cs +++ b/UICatalog/Scenarios/Clipping.cs @@ -69,6 +69,11 @@ namespace UICatalog { Height = Dim.Fill (3), ColorScheme = Colors.TopLevel }; + embedded3.Add (new Button (2, 2, "click me") { + Clicked = () => { + MessageBox.Query (10, 5, "Test", "test message", "Ok"); + } + }); embedded2.Add (embedded3); scrollView.Add (embedded1);