X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=otk%2Fbutton.cc;h=3f283b00085ac9869a7e0d3b661995a34ede48ff;hb=7df3b620e21777dbefa24f381c1a95fafed1c16e;hp=98d5780504d8335eaecb40558dca4170c0fecf64;hpb=b169547797768acdb1ca90330375bba5b5caa19e;p=chaz%2Fopenbox diff --git a/otk/button.cc b/otk/button.cc index 98d57805..3f283b00 100644 --- a/otk/button.cc +++ b/otk/button.cc @@ -1,3 +1,4 @@ +#include #include "button.hh" namespace otk { @@ -57,12 +58,42 @@ void OtkButton::update(void) OtkFocusWidget::resize(ft.measureString(_text) + bevel * 2, ft.height() + bevel * 2); - ft.drawString(getWindow(), bevel, bevel, *text_color, _text); + OtkFocusWidget::update(); + ft.drawString(getWindow(), bevel, bevel, *text_color, _text); + } else OtkFocusWidget::update(); - } _dirty = false; } +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::exposeHandler(e); +} + +int OtkButton::configureHandler(const XConfigureEvent &e) +{ + if (!(e.width == width() && e.height == height())) + _dirty = true; + return OtkFocusWidget::configureHandler(e); +} + }