summaryrefslogtreecommitdiffstats
path: root/src/gui
diff options
context:
space:
mode:
authorJan-Arve Sæther <jan-arve.saether@nokia.com>2009-08-06 11:18:24 (GMT)
committerJan-Arve Sæther <jan-arve.saether@nokia.com>2009-08-06 11:34:07 (GMT)
commit620e7d82b34624f6765daf32917b12ab0e2249b0 (patch)
tree1efc12b1077d5646fbfed5490fdd41e9dabea3d8 /src/gui
parentfbef83bc1adb03acd9dcb8dc6619ff77add8bd93 (diff)
downloadQt-620e7d82b34624f6765daf32917b12ab0e2249b0.zip
Qt-620e7d82b34624f6765daf32917b12ab0e2249b0.tar.gz
Qt-620e7d82b34624f6765daf32917b12ab0e2249b0.tar.bz2
Make sure QWidget::setStyle() relayouts its children.
Changing a style on a widget should invalidate the widget's layout, since the layouts spacings and margins may depend on the style. One optimization could be to check to see if the spacing and margins have changed due to the style change, but the old style is not available in changeEvent, so we'll keep it simple for now. RevBy: paul Task: 256986
Diffstat (limited to 'src/gui')
-rw-r--r--src/gui/kernel/qwidget.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/gui/kernel/qwidget.cpp b/src/gui/kernel/qwidget.cpp
index 60a6b7a..f705761 100644
--- a/src/gui/kernel/qwidget.cpp
+++ b/src/gui/kernel/qwidget.cpp
@@ -7990,10 +7990,12 @@ void QWidget::changeEvent(QEvent * event)
case QEvent::FontChange:
case QEvent::StyleChange: {
+ Q_D(QWidget);
update();
updateGeometry();
+ if (d->layout)
+ d->layout->invalidate();
#ifdef Q_WS_QWS
- Q_D(QWidget);
if (isWindow())
d->data.fstrut_dirty = true;
#endif