summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@nokia.com>2012-09-07 09:36:49 +0200
committerQt by Nokia <qt-info@nokia.com>2012-09-10 09:39:07 +0200
commita02d1ac962da03436c4d5062d50fc95ca1284008 (patch)
treedad983960b882c704a8750f5c132e0883e94195b /src
parentb41bd2b08d64e8ccc8a0a2ad085b8bf5a5d9929f (diff)
Do not call requestActivateWindow() on popups.
Showing a compo dropdown would cause the parent to become deactivated (Windows). Introduced by: 8368557b9c0010fb205969d010c9d8549fbee0ae for QTBUG-25852 , QTBUG-23699 . Task-number: QTBUG-27145 Change-Id: I7b89697a2c55d58cc0ab184b61a0cff8bf2275ec Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org> Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com> Reviewed-by: Jonathan Liu <net147@gmail.com> Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
Diffstat (limited to 'src')
-rw-r--r--src/widgets/kernel/qwidget_qpa.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/widgets/kernel/qwidget_qpa.cpp b/src/widgets/kernel/qwidget_qpa.cpp
index a1a414e4f4..a94ecebc64 100644
--- a/src/widgets/kernel/qwidget_qpa.cpp
+++ b/src/widgets/kernel/qwidget_qpa.cpp
@@ -684,10 +684,13 @@ void QWidgetPrivate::setFocus_sys()
{
Q_Q(QWidget);
// Embedded native widget may have taken the focus; get it back to toplevel if that is the case
- if (QWindow *nativeWindow = q->window()->windowHandle()) {
- if (nativeWindow != QGuiApplication::focusWindow()
- && q->testAttribute(Qt::WA_WState_Created)) {
- nativeWindow->requestActivateWindow();
+ const QWidget *topLevel = q->window();
+ if (topLevel->windowType() != Qt::Popup) {
+ if (QWindow *nativeWindow = q->window()->windowHandle()) {
+ if (nativeWindow != QGuiApplication::focusWindow()
+ && q->testAttribute(Qt::WA_WState_Created)) {
+ nativeWindow->requestActivateWindow();
+ }
}
}
}