summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--otk/button.cc4
-rw-r--r--otk/button.hh2
-rw-r--r--otk/widget.cc7
-rw-r--r--otk/widget.hh2
4 files changed, 9 insertions, 6 deletions
diff --git a/otk/button.cc b/otk/button.cc
index 9d6c43b1..150e32d9 100644
--- a/otk/button.cc
+++ b/otk/button.cc
@@ -65,10 +65,10 @@ void OtkButton::update(void)
OtkFocusWidget::update();
}
-void OtkButton::expose(const XExposeEvent &e)
+bool OtkButton::expose(const XExposeEvent &e)
{
_dirty = true;
- OtkFocusWidget::expose(e);
+ return OtkFocusWidget::expose(e);
}
}
diff --git a/otk/button.hh b/otk/button.hh
index a4b3a978..48a0f813 100644
--- a/otk/button.hh
+++ b/otk/button.hh
@@ -34,7 +34,7 @@ public:
void release(void);
virtual void update(void);
- virtual void expose(const XExposeEvent &e);
+ virtual bool expose(const XExposeEvent &e);
private:
diff --git a/otk/widget.cc b/otk/widget.cc
index aaec59b6..3ff484bc 100644
--- a/otk/widget.cc
+++ b/otk/widget.cc
@@ -390,16 +390,19 @@ void OtkWidget::removeChild(OtkWidget *child)
_children.erase(it);
}
-void OtkWidget::expose(const XExposeEvent &e)
+bool OtkWidget::expose(const XExposeEvent &e)
{
if (e.window == _window) {
_dirty = true;
update();
+ return true;
} else {
OtkWidgetList::iterator it = _children.begin(), end = _children.end();
for (; it != end; ++it)
- (*it)->expose(e);
+ if ((*it)->expose(e))
+ return true;
}
+ return false;
}
}
diff --git a/otk/widget.hh b/otk/widget.hh
index 21e2911a..ca65730c 100644
--- a/otk/widget.hh
+++ b/otk/widget.hh
@@ -27,7 +27,7 @@ public:
virtual void update(void);
- virtual void expose(const XExposeEvent &e);
+ virtual bool expose(const XExposeEvent &e);
inline Window getWindow(void) const { return _window; }
inline const OtkWidget *getParent(void) const { return _parent; }