diff options
author | Gabriel de Dietrich <gabriel.dietrich-de@nokia.com> | 2013-07-12 14:42:06 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-07-12 17:02:54 +0200 |
commit | 64caf7b1be4ebf9a21653a1ee808e39618cceb55 (patch) | |
tree | a8a3a5ab95d8d466888630802c564ac61877f2e4 /src/widgets/styles | |
parent | 4f71a272b57c5e63b9fb166cbc352c305f3c7ef7 (diff) |
Display sizegrip on QMdiSubWindows, even on 10.7 and later
We don't have 4-edge window resizing, so we need QSizeGrip to
be functional again in this case.
Task-number: QTBUG-32228
Change-Id: Ib66bc662f8bf0b521427755570bc1cd65fb28446
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
Diffstat (limited to 'src/widgets/styles')
-rw-r--r-- | src/widgets/styles/qmacstyle_mac.mm | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/src/widgets/styles/qmacstyle_mac.mm b/src/widgets/styles/qmacstyle_mac.mm index dad4e57d13..9119e2cfba 100644 --- a/src/widgets/styles/qmacstyle_mac.mm +++ b/src/widgets/styles/qmacstyle_mac.mm @@ -69,6 +69,7 @@ #include <qheaderview.h> #include <qlineedit.h> #include <qmainwindow.h> +#include <qmdisubwindow.h> #include <qmenubar.h> #include <qpaintdevice.h> #include <qpainter.h> @@ -849,8 +850,17 @@ static QSize qt_aqua_get_known_size(QStyle::ContentsType ct, const QWidget *widg gbi.direction = QApplication::isRightToLeft() ? kThemeGrowLeft | kThemeGrowDown : kThemeGrowRight | kThemeGrowDown; gbi.size = sz == QAquaSizeSmall ? kHIThemeGrowBoxSizeSmall : kHIThemeGrowBoxSizeNormal; - if (HIThemeGetGrowBoxBounds(&p, &gbi, &r) == noErr) - ret = QSize(QSysInfo::MacintoshVersion <= QSysInfo::MV_10_6 ? r.size.width : 0, r.size.height); + if (HIThemeGetGrowBoxBounds(&p, &gbi, &r) == noErr) { + int width = 0; + // Snow Leopard and older get a size grip, as well as QMdiSubWindows. + if (QSysInfo::MacintoshVersion <= QSysInfo::MV_10_6 +#ifndef QT_NO_MDIAREA + || (widg && widg->parentWidget() && qobject_cast<QMdiSubWindow *>(widg->parentWidget())) +#endif + ) + width = r.size.width; + ret = QSize(width, r.size.height); + } } break; case QStyle::CT_ComboBox: @@ -4333,8 +4343,12 @@ void QMacStyle::drawControl(ControlElement ce, const QStyleOption *opt, QPainter case CE_ProgressBarGroove: break; case CE_SizeGrip: { - // We do not draw size grips on versions > 10.6 - if (QSysInfo::MacintoshVersion > QSysInfo::MV_10_6) + // We do not draw size grips on versions > 10.6 unless it's a QMdiSubWindow + if (QSysInfo::MacintoshVersion > QSysInfo::MV_10_6 +#ifndef QT_NO_MDIAREA + && !(w && w->parentWidget() && qobject_cast<QMdiSubWindow *>(w->parentWidget())) +#endif + ) break; if (w && w->testAttribute(Qt::WA_MacOpaqueSizeGrip)) { |