X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=otk%2Fbutton.cc;h=3f283b00085ac9869a7e0d3b661995a34ede48ff;hb=7df3b620e21777dbefa24f381c1a95fafed1c16e;hp=150e32d9369c47ea40944cf92e979cda69affd15;hpb=6d68ac2256dc212dc0f2dd8a15d013d6ce3fc4b8;p=chaz%2Fopenbox diff --git a/otk/button.cc b/otk/button.cc index 150e32d9..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; } -bool OtkButton::expose(const XExposeEvent &e) +int OtkButton::buttonPressHandler(const XButtonEvent &e) { + press(); _dirty = true; - return 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); } }