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;