X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=otk%2Fbutton.cc;h=3f283b00085ac9869a7e0d3b661995a34ede48ff;hb=7df3b620e21777dbefa24f381c1a95fafed1c16e;hp=9d6c43b13d4b63de621a2cb05a5d9be7f09deb96;hpb=b7dba88a0addfa232781427891b615a6bc3147c6;p=chaz%2Fopenbox diff --git a/otk/button.cc b/otk/button.cc index 9d6c43b1..3f283b00 100644 --- a/otk/button.cc +++ b/otk/button.cc @@ -1,3 +1,4 @@ +#include #include "button.hh" namespace otk { @@ -57,18 +58,42 @@ 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); } else OtkFocusWidget::update(); + + _dirty = false; } -void OtkButton::expose(const XExposeEvent &e) +int OtkButton::buttonPressHandler(const XButtonEvent &e) { + press(); _dirty = true; - OtkFocusWidget::expose(e); + 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::exposeHandler(e); +} + +int OtkButton::configureHandler(const XConfigureEvent &e) +{ + if (!(e.width == width() && e.height == height())) + _dirty = true; + return OtkFocusWidget::configureHandler(e); } }