From a63c7a93828dbda11ae6ec2ef9ed3701141ba36e Mon Sep 17 00:00:00 2001 From: Thomas McGuire Date: Tue, 10 Jul 2012 11:00:36 +0200 Subject: Don't set the resize and move flags when activating fullscreen mode This fixes tst_QWidget::movedAndResizedAttributes() for platforms that don't have support for QPlatformWindow::setWindowState(). Change-Id: Id0f123d11b08a75c0c131080d509e6b23b281600 Reviewed-by: Friedemann Kleint Reviewed-by: Girish Ramakrishnan --- src/widgets/kernel/qwidget_qpa.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src/widgets') diff --git a/src/widgets/kernel/qwidget_qpa.cpp b/src/widgets/kernel/qwidget_qpa.cpp index ec6d10d0b6..9a31373981 100644 --- a/src/widgets/kernel/qwidget_qpa.cpp +++ b/src/widgets/kernel/qwidget_qpa.cpp @@ -621,6 +621,9 @@ void QWidget::setWindowState(Qt::WindowStates newstate) bool supported = windowHandle()->windowState() == newEffectiveState; if (!supported) { + const bool wasResized = testAttribute(Qt::WA_Resized); + const bool wasMoved = testAttribute(Qt::WA_Moved); + // undo the effects of the old emulated state if (oldEffectiveState == Qt::WindowFullScreen) { setParent(0, d->topData()->savedFlags); @@ -651,6 +654,11 @@ void QWidget::setWindowState(Qt::WindowStates newstate) setGeometry(r); } } + + // setWindowState() is not an explicit move/resize, same as the supported == true + // case + setAttribute(Qt::WA_Resized, wasResized); + setAttribute(Qt::WA_Moved, wasMoved); } } data->in_set_window_state = 0; -- cgit v1.2.3