diff options
author | David Faure <faure@kde.org> | 2010-07-15 14:08:43 (GMT) |
---|---|---|
committer | Fabien Freling <fabien.freling@nokia.com> | 2010-10-15 11:21:05 (GMT) |
commit | 9e378145294da33495d48b2c0742461ae6c2a3ba (patch) | |
tree | d8a2bfd61ddc916a2319bd1cfb382385688ce4e7 /src/gui/widgets | |
parent | a9cddeb760e85fbce2c1604b7e7b9b2affaaccd9 (diff) | |
download | Qt-9e378145294da33495d48b2c0742461ae6c2a3ba.zip Qt-9e378145294da33495d48b2c0742461ae6c2a3ba.tar.gz Qt-9e378145294da33495d48b2c0742461ae6c2a3ba.tar.bz2 |
QWorkspace: fix hardcoded min size overwriting the real min size
The setMinimumSize call was having precedence over the minimumSizeHint,
so when having a sizegrip enabled it was possible to resize a MDI window to
a much smaller size than its min size (actually it would flicker between
the two sizes, on each resize). Fixed by moving that min size (for the
titlebar contents) to the calculations in minimumSizeHint().
Reviewed-by: mariusso
Diffstat (limited to 'src/gui/widgets')
-rw-r--r-- | src/gui/widgets/qworkspace.cpp | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/src/gui/widgets/qworkspace.cpp b/src/gui/widgets/qworkspace.cpp index 7180c4d..3a9b30c 100644 --- a/src/gui/widgets/qworkspace.cpp +++ b/src/gui/widgets/qworkspace.cpp @@ -2551,7 +2551,6 @@ QWorkspaceChild::QWorkspaceChild(QWidget* window, QWorkspace *parent, Qt::Window this, SLOT(titleBarDoubleClicked())); } - setMinimumSize(128, 0); int fw = style()->pixelMetric(QStyle::PM_MdiSubWindowFrameWidth, 0, this); setContentsMargins(fw, fw, fw, fw); @@ -2702,11 +2701,15 @@ QSize QWorkspaceChild::sizeHint() const QSize QWorkspaceChild::minimumSizeHint() const { - if (!childWidget) - return QWidget::minimumSizeHint() + baseSize(); - QSize s = childWidget->minimumSize(); - if (s.isEmpty()) - s = childWidget->minimumSizeHint(); + QSize s; + if (!childWidget) { + s = QWidget::minimumSizeHint(); + } else { + s = childWidget->minimumSize(); + if (s.isEmpty()) + s = childWidget->minimumSizeHint(); + } + s = s.expandedTo(QSize(128, 0)); return s + baseSize(); } |