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