diff options
-rw-r--r-- | src/widgets/kernel/qwidget_qpa.cpp | 2 | ||||
-rw-r--r-- | src/widgets/kernel/qwidgetwindow.cpp | 4 | ||||
-rw-r--r-- | tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp | 4 | ||||
-rw-r--r-- | tests/auto/widgets/kernel/qwidget_window/tst_qwidget_window.cpp | 28 |
4 files changed, 1 insertions, 37 deletions
diff --git a/src/widgets/kernel/qwidget_qpa.cpp b/src/widgets/kernel/qwidget_qpa.cpp index 3c4985591e..93234f3958 100644 --- a/src/widgets/kernel/qwidget_qpa.cpp +++ b/src/widgets/kernel/qwidget_qpa.cpp @@ -510,9 +510,9 @@ void QWidgetPrivate::show_sys() QWindow *window = q->windowHandle(); - q->setAttribute(Qt::WA_Mapped); if (q->testAttribute(Qt::WA_DontShowOnScreen)) { invalidateBuffer(q->rect()); + q->setAttribute(Qt::WA_Mapped); if (q->isWindow() && q->windowModality() != Qt::NonModal && window) { // add our window to the modal window list QGuiApplicationPrivate::showModalWindow(window); diff --git a/src/widgets/kernel/qwidgetwindow.cpp b/src/widgets/kernel/qwidgetwindow.cpp index 22e15e23fe..e977ab3d6f 100644 --- a/src/widgets/kernel/qwidgetwindow.cpp +++ b/src/widgets/kernel/qwidgetwindow.cpp @@ -713,10 +713,6 @@ void QWidgetWindow::handleWindowStateChangedEvent(QWindowStateChangeEvent *event break; } - // Note that widgetState == m_widget->data->window_state when triggered by QWidget::setWindowState(). - if (!(widgetState & Qt::WindowMinimized)) - m_widget->setAttribute(Qt::WA_Mapped); - // Sent event if the state changed (that is, it is not triggered by // QWidget::setWindowState(), which also sends an event to the widget). if (widgetState != int(m_widget->data->window_state)) { diff --git a/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp b/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp index 7bb5fd4614..03d6c1cdbd 100644 --- a/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp +++ b/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp @@ -7192,10 +7192,6 @@ void tst_QWidget::hideOpaqueChildWhileHidden() #if !defined(Q_OS_WINCE) void tst_QWidget::updateWhileMinimized() { -#ifdef Q_OS_UNIX - if (qgetenv("XDG_CURRENT_DESKTOP").contains("Unity")) - QSKIP("This test fails on Unity."); // Minimized windows are not unmapped for some reason. -#endif // Q_OS_UNIX UpdateWidget widget; // Filter out activation change and focus events to avoid update() calls in QWidget. widget.updateOnActivationChangeAndFocusIn = false; diff --git a/tests/auto/widgets/kernel/qwidget_window/tst_qwidget_window.cpp b/tests/auto/widgets/kernel/qwidget_window/tst_qwidget_window.cpp index f5585c583a..1bbbfd610e 100644 --- a/tests/auto/widgets/kernel/qwidget_window/tst_qwidget_window.cpp +++ b/tests/auto/widgets/kernel/qwidget_window/tst_qwidget_window.cpp @@ -91,8 +91,6 @@ private slots: void tst_showWithoutActivating(); void tst_paintEventOnSecondShow(); - void obscuredNativeMapped(); - #ifndef QT_NO_DRAGANDDROP void tst_dnd(); #endif @@ -370,32 +368,6 @@ void tst_QWidget_window::tst_paintEventOnSecondShow() QTRY_VERIFY(w.paintEventReceived); } -// QTBUG-33520, a toplevel fully obscured by native children should still receive Qt::WA_Mapped -void tst_QWidget_window::obscuredNativeMapped() -{ - enum { size = 200 }; - - QWidget topLevel; - topLevel.setWindowFlags(Qt::FramelessWindowHint); - QWidget *child = new QWidget(&topLevel); - child->resize(size, size); - topLevel.resize(size, size); - topLevel.move(QGuiApplication::primaryScreen()->availableGeometry().center() - QPoint(size /2 , size / 2)); - child->winId(); - topLevel.show(); - QTRY_VERIFY(topLevel.testAttribute(Qt::WA_Mapped)); -#if defined(Q_OS_MAC) - QSKIP("This test fails on Mac."); // Minimized windows are not unmapped for some reason. -#elif defined(Q_OS_UNIX) - if (qgetenv("XDG_CURRENT_DESKTOP").contains("Unity")) - QSKIP("This test fails on Unity."); // Minimized windows are not unmapped for some reason. -#endif // Q_OS_UNIX - topLevel.setWindowState(Qt::WindowMinimized); - QTRY_VERIFY(!topLevel.testAttribute(Qt::WA_Mapped)); - topLevel.setWindowState(Qt::WindowNoState); - QTRY_VERIFY(topLevel.testAttribute(Qt::WA_Mapped)); -} - #ifndef QT_NO_DRAGANDDROP /* DnD test for QWidgetWindow (handleDrag*Event() functions). |