aboutsummaryrefslogtreecommitdiff
path: root/dw/layout.cc
diff options
context:
space:
mode:
authorSebastian Geerken <devnull@localhost>2013-08-22 21:19:32 +0200
committerSebastian Geerken <devnull@localhost>2013-08-22 21:19:32 +0200
commit72657dd3f3860e2a9b0d6851501a3f8b9d593879 (patch)
treec80c23c7989587d62bf95f988604b1fac6916b60 /dw/layout.cc
parente48606662f5f12d2d3fd70ae4b4528aaf5077eab (diff)
Correctly handling Widget::sizeRequest outside of Layout::resizeIdle.
Diffstat (limited to 'dw/layout.cc')
-rw-r--r--dw/layout.cc12
1 files changed, 8 insertions, 4 deletions
diff --git a/dw/layout.cc b/dw/layout.cc
index 9e667cff..c26ae57b 100644
--- a/dw/layout.cc
+++ b/dw/layout.cc
@@ -674,11 +674,15 @@ void Layout::resizeIdle ()
// widget->parent ? "non-" : "", widget->getClassName(), widget,
// widget->extremesQueued () ? "yes" : "no");
- widget->setFlags (Widget::NEEDS_RESIZE);
- widget->unsetFlags (Widget::RESIZE_QUEUED);
+ if (widget->resizeQueued ()) {
+ widget->setFlags (Widget::NEEDS_RESIZE);
+ widget->unsetFlags (Widget::RESIZE_QUEUED);
+ }
- widget->setFlags (Widget::NEEDS_ALLOCATE);
- widget->unsetFlags (Widget::ALLOCATE_QUEUED);
+ if (widget->allocateQueued ()) {
+ widget->setFlags (Widget::NEEDS_ALLOCATE);
+ widget->unsetFlags (Widget::ALLOCATE_QUEUED);
+ }
if (widget->extremesQueued ()) {
widget->setFlags (Widget::EXTREMES_CHANGED);