summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorShawn Rutledge <shawn.rutledge@digia.com>2012-11-28 19:46:04 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2012-12-01 08:32:26 +0100
commitc8dc41bacdc30026cb79d0d6c72255312084bfe3 (patch)
tree894f55d84959a18ffdd9cc832088a6617770d084
parent134f5e0cce2ff10088e6b11bed4f7de9547748c1 (diff)
QWidget windows have fullscreen button by default; manual test for it
It's again possible for QWindows and widget windows to go into fullscreen mode on the Mac. Change-Id: I7b304a135838394ef0392f89be4f225f2949fad3 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
-rw-r--r--src/plugins/platforms/cocoa/qcocoawindow.mm3
-rw-r--r--src/widgets/kernel/qwidget.cpp4
-rw-r--r--src/widgets/widgets/qmdisubwindow.cpp1
-rw-r--r--tests/manual/windowflags/controls.cpp16
-rw-r--r--tests/manual/windowflags/controls.h1
-rw-r--r--tests/manual/windowgeometry/controllerwidget.cpp2
6 files changed, 19 insertions, 8 deletions
diff --git a/src/plugins/platforms/cocoa/qcocoawindow.mm b/src/plugins/platforms/cocoa/qcocoawindow.mm
index 7946a385dc..77073d9bc6 100644
--- a/src/plugins/platforms/cocoa/qcocoawindow.mm
+++ b/src/plugins/platforms/cocoa/qcocoawindow.mm
@@ -384,6 +384,9 @@ NSUInteger QCocoaWindow::windowStyleMask(Qt::WindowFlags flags)
}
}
+#ifdef QT_COCOA_ENABLE_WINDOW_DEBUG
+ qDebug("windowStyleMask of '%s': flags %X -> styleMask %lX", qPrintable(window()->title()), (int)flags, styleMask);
+#endif
return styleMask;
}
diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp
index f5ac598285..e167e646c0 100644
--- a/src/widgets/kernel/qwidget.cpp
+++ b/src/widgets/kernel/qwidget.cpp
@@ -1080,8 +1080,8 @@ void QWidgetPrivate::adjustFlags(Qt::WindowFlags &flags, QWidget *w)
else if (type == Qt::Tool)
flags |= Qt::WindowTitleHint | Qt::WindowSystemMenuHint | Qt::WindowCloseButtonHint;
else
- flags |= Qt::WindowTitleHint | Qt::WindowSystemMenuHint | Qt::WindowMinimizeButtonHint | Qt::WindowMaximizeButtonHint | Qt::WindowCloseButtonHint;
-
+ flags |= Qt::WindowTitleHint | Qt::WindowSystemMenuHint | Qt::WindowMinimizeButtonHint |
+ Qt::WindowMaximizeButtonHint | Qt::WindowCloseButtonHint | Qt::WindowFullscreenButtonHint;
}
diff --git a/src/widgets/widgets/qmdisubwindow.cpp b/src/widgets/widgets/qmdisubwindow.cpp
index 8d11778266..cd419e35dd 100644
--- a/src/widgets/widgets/qmdisubwindow.cpp
+++ b/src/widgets/widgets/qmdisubwindow.cpp
@@ -2092,6 +2092,7 @@ void QMdiSubWindowPrivate::setWindowFlags(Qt::WindowFlags windowFlags)
windowFlags = Qt::FramelessWindowHint;
windowFlags &= ~windowType;
+ windowFlags &= ~Qt::WindowFullscreenButtonHint;
windowFlags |= Qt::SubWindow;
#ifndef QT_NO_ACTION
diff --git a/tests/manual/windowflags/controls.cpp b/tests/manual/windowflags/controls.cpp
index 4957cd14c8..79a297c45d 100644
--- a/tests/manual/windowflags/controls.cpp
+++ b/tests/manual/windowflags/controls.cpp
@@ -59,6 +59,7 @@ HintControl::HintControl(QWidget *parent)
, windowSystemMenuCheckBox(new QCheckBox(tr("Window system menu")))
, windowMinimizeButtonCheckBox(new QCheckBox(tr("Window minimize button")))
, windowMaximizeButtonCheckBox(new QCheckBox(tr("Window maximize button")))
+ , windowFullscreenButtonCheckBox(new QCheckBox(tr("Window fullscreen button")))
, windowCloseButtonCheckBox(new QCheckBox(tr("Window close button")))
, windowContextHelpButtonCheckBox(new QCheckBox(tr("Window context help button")))
, windowShadeButtonCheckBox(new QCheckBox(tr("Window shade button")))
@@ -74,6 +75,7 @@ HintControl::HintControl(QWidget *parent)
connect(windowSystemMenuCheckBox, SIGNAL(clicked()), this, SLOT(slotCheckBoxChanged()));
connect(windowMinimizeButtonCheckBox, SIGNAL(clicked()), this, SLOT(slotCheckBoxChanged()));
connect(windowMaximizeButtonCheckBox, SIGNAL(clicked()), this, SLOT(slotCheckBoxChanged()));
+ connect(windowFullscreenButtonCheckBox, SIGNAL(clicked()), this, SLOT(slotCheckBoxChanged()));
connect(windowCloseButtonCheckBox, SIGNAL(clicked()), this, SLOT(slotCheckBoxChanged()));
connect(windowContextHelpButtonCheckBox, SIGNAL(clicked()), this, SLOT(slotCheckBoxChanged()));
connect(windowShadeButtonCheckBox, SIGNAL(clicked()), this, SLOT(slotCheckBoxChanged()));
@@ -91,11 +93,12 @@ HintControl::HintControl(QWidget *parent)
layout->addWidget(windowSystemMenuCheckBox, 4, 0);
layout->addWidget(windowMinimizeButtonCheckBox, 0, 1);
layout->addWidget(windowMaximizeButtonCheckBox, 1, 1);
- layout->addWidget(windowCloseButtonCheckBox, 2, 1);
- layout->addWidget(windowContextHelpButtonCheckBox, 3, 1);
- layout->addWidget(windowShadeButtonCheckBox, 4, 1);
- layout->addWidget(windowStaysOnTopCheckBox, 5, 1);
- layout->addWidget(windowStaysOnBottomCheckBox, 6, 1);
+ layout->addWidget(windowFullscreenButtonCheckBox, 2, 1);
+ layout->addWidget(windowCloseButtonCheckBox, 3, 1);
+ layout->addWidget(windowContextHelpButtonCheckBox, 4, 1);
+ layout->addWidget(windowShadeButtonCheckBox, 5, 1);
+ layout->addWidget(windowStaysOnTopCheckBox, 6, 1);
+ layout->addWidget(windowStaysOnBottomCheckBox, 7, 1);
layout->addWidget(customizeWindowHintCheckBox, 5, 0);
layout->addWidget(transparentForInputCheckBox, 6, 0);
#if QT_VERSION < 0x050000
@@ -120,6 +123,8 @@ Qt::WindowFlags HintControl::hints() const
flags |= Qt::WindowMinimizeButtonHint;
if (windowMaximizeButtonCheckBox->isChecked())
flags |= Qt::WindowMaximizeButtonHint;
+ if (windowFullscreenButtonCheckBox->isChecked())
+ flags |= Qt::WindowFullscreenButtonHint;
if (windowCloseButtonCheckBox->isChecked())
flags |= Qt::WindowCloseButtonHint;
if (windowContextHelpButtonCheckBox->isChecked())
@@ -148,6 +153,7 @@ void HintControl::setHints(Qt::WindowFlags flags)
windowSystemMenuCheckBox->setChecked(flags & Qt::WindowSystemMenuHint);
windowMinimizeButtonCheckBox->setChecked(flags & Qt::WindowMinimizeButtonHint);
windowMaximizeButtonCheckBox->setChecked(flags & Qt::WindowMaximizeButtonHint);
+ windowFullscreenButtonCheckBox->setChecked(flags & Qt::WindowFullscreenButtonHint);
windowCloseButtonCheckBox->setChecked(flags & Qt::WindowCloseButtonHint);
windowContextHelpButtonCheckBox->setChecked(flags & Qt::WindowContextHelpButtonHint);
windowShadeButtonCheckBox->setChecked(flags & Qt::WindowShadeButtonHint);
diff --git a/tests/manual/windowflags/controls.h b/tests/manual/windowflags/controls.h
index 5ca371f786..dc70428773 100644
--- a/tests/manual/windowflags/controls.h
+++ b/tests/manual/windowflags/controls.h
@@ -76,6 +76,7 @@ private:
QCheckBox *windowSystemMenuCheckBox;
QCheckBox *windowMinimizeButtonCheckBox;
QCheckBox *windowMaximizeButtonCheckBox;
+ QCheckBox *windowFullscreenButtonCheckBox;
QCheckBox *windowCloseButtonCheckBox;
QCheckBox *windowContextHelpButtonCheckBox;
QCheckBox *windowShadeButtonCheckBox;
diff --git a/tests/manual/windowgeometry/controllerwidget.cpp b/tests/manual/windowgeometry/controllerwidget.cpp
index 2338c6fd2b..1dca58271b 100644
--- a/tests/manual/windowgeometry/controllerwidget.cpp
+++ b/tests/manual/windowgeometry/controllerwidget.cpp
@@ -456,7 +456,7 @@ ControllerWidget::ControllerWidget(QWidget *parent)
x += 300;
m_testWindow->setWindowFlags(Qt::Window | Qt::WindowSystemMenuHint | Qt::WindowCloseButtonHint
| Qt::WindowMinimizeButtonHint | Qt::WindowMaximizeButtonHint
- | Qt::WindowTitleHint);
+ | Qt::WindowTitleHint | Qt::WindowFullscreenButtonHint);
m_testWindow->setFramePosition(QPoint(x, y));
m_testWindow->resize(200, 200);
if (args.contains(QLatin1String("-windowminimized"), Qt::CaseInsensitive))