diff options
| -rw-r--r-- | otk/button.cc | 6 |
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) |
