diff options
author | Dominik Kapusta <dominik.kapusta@teleca.com> | 2010-11-25 11:19:33 +0100 |
---|---|---|
committer | Dominik Kapusta <dominik.kapusta@teleca.com> | 2010-11-26 12:57:39 +0100 |
commit | 6897333657e74897b7fec05772d2aebdd5e0da60 (patch) | |
tree | c3824b56c0411ecdbdd6214d53735b5d0f20eb1f | |
parent | deff752030283d9209148ee6bc951993f8fe11c6 (diff) |
Fixes: NB#206885 - MApplication::activeWindow() doesn't return topmost window after showMinimized()
RevBy: MichaĆ
Details: set window as active when it receives Show event only if it's not minimized.
-rw-r--r-- | src/corelib/widgets/mwindow.cpp | 2 | ||||
-rw-r--r-- | tests/ut_mwindow/ut_mwindow.cpp | 16 | ||||
-rw-r--r-- | tests/ut_mwindow/ut_mwindow.h | 2 |
3 files changed, 19 insertions, 1 deletions
diff --git a/src/corelib/widgets/mwindow.cpp b/src/corelib/widgets/mwindow.cpp index f719ff0f..af04fe70 100644 --- a/src/corelib/widgets/mwindow.cpp +++ b/src/corelib/widgets/mwindow.cpp @@ -1225,7 +1225,7 @@ bool MWindow::event(QEvent *event) { Q_D(MWindow); - if (event->type() == QEvent::Show || event->type() == QEvent::WindowActivate) { + if ((event->type() == QEvent::Show && !isMinimized()) || event->type() == QEvent::WindowActivate) { MComponentData::setActiveWindow(this); } else if (event->type() == QEvent::WindowStateChange) { d->handleWindowStateChangeEvent(static_cast<QWindowStateChangeEvent *>(event)); diff --git a/tests/ut_mwindow/ut_mwindow.cpp b/tests/ut_mwindow/ut_mwindow.cpp index 479e7448..41464cf7 100644 --- a/tests/ut_mwindow/ut_mwindow.cpp +++ b/tests/ut_mwindow/ut_mwindow.cpp @@ -547,4 +547,20 @@ void Ut_MWindow::testAnimatedOrientationChangeProperty() QCOMPARE(actualTransitionMode, expectedTransitionMode); } +void Ut_MWindow::testActiveWindow() +{ + QCOMPARE(MApplication::activeWindow(), win); + MWindow *win2 = new MWindow; + MWindow *win3 = new MWindow; + + win2->show(); + QCOMPARE(MApplication::activeWindow(), win2); + + win3->showMinimized(); + QCOMPARE(MApplication::activeWindow(), win2); + + delete win2; + delete win3; +} + QTEST_MAIN(Ut_MWindow); diff --git a/tests/ut_mwindow/ut_mwindow.h b/tests/ut_mwindow/ut_mwindow.h index b0f1ed71..8f973061 100644 --- a/tests/ut_mwindow/ut_mwindow.h +++ b/tests/ut_mwindow/ut_mwindow.h @@ -78,6 +78,8 @@ private slots: void testAnimatedOrientationChangeProperty_data(); void testAnimatedOrientationChangeProperty(); + void testActiveWindow(); + public slots: void onDisplayTestSlot(); |