X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=otk%2Fbutton.cc;h=3f283b00085ac9869a7e0d3b661995a34ede48ff;hb=7df3b620e21777dbefa24f381c1a95fafed1c16e;hp=1e8a4f03277873de917c4ca51fa0713d412ea3eb;hpb=d97db164304972445e14c6702b76af0259e3d3be;p=chaz%2Fopenbox diff --git a/otk/button.cc b/otk/button.cc index 1e8a4f03..3f283b00 100644 --- a/otk/button.cc +++ b/otk/button.cc @@ -1,3 +1,4 @@ +#include #include "button.hh" namespace otk { @@ -57,7 +58,6 @@ void OtkButton::update(void) OtkFocusWidget::resize(ft.measureString(_text) + bevel * 2, ft.height() + bevel * 2); - OtkFocusWidget::update(); ft.drawString(getWindow(), bevel, bevel, *text_color, _text); @@ -67,10 +67,33 @@ void OtkButton::update(void) _dirty = false; } -bool OtkButton::expose(const XExposeEvent &e) +int OtkButton::buttonPressHandler(const XButtonEvent &e) +{ + press(); + _dirty = true; + update(); + return OtkFocusWidget::buttonPressHandler(e); +} + +int OtkButton::buttonReleaseHandler(const XButtonEvent &e) +{ + release(); + _dirty = true; + update(); + return OtkFocusWidget::buttonReleaseHandler(e); +} + +int OtkButton::exposeHandler(const XExposeEvent &e) { _dirty = true; - return OtkFocusWidget::expose(e); + return OtkFocusWidget::exposeHandler(e); +} + +int OtkButton::configureHandler(const XConfigureEvent &e) +{ + if (!(e.width == width() && e.height == height())) + _dirty = true; + return OtkFocusWidget::configureHandler(e); } }