summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--otk/button.cc6
1 files changed, 4 insertions, 2 deletions
diff --git a/otk/button.cc b/otk/button.cc
index f068d5a5..313d8acf 100644
--- a/otk/button.cc
+++ b/otk/button.cc
@@ -38,8 +38,6 @@ void Button::release(unsigned int mouse_button)
styleChanged(*RenderStyle::style(screen()));
refresh();
-
- clickHandler(_mouse_button);
}
void Button::buttonPressHandler(const XButtonEvent &e)
@@ -51,7 +49,11 @@ void Button::buttonPressHandler(const XButtonEvent &e)
void Button::buttonReleaseHandler(const XButtonEvent &e)
{
Widget::buttonReleaseHandler(e);
+ bool p = _pressed;
release(e.button);
+ if (p && !_pressed && e.x > 0 && e.y > 0 &&
+ e.x < area().width() && e.y < area().height())
+ clickHandler(_mouse_button);
}
void Button::styleChanged(const RenderStyle &style)