From: Friedemann Kleint Date: Fri, 7 Sep 2012 07:36:49 +0000 (+0200) Subject: Do not call requestActivateWindow() on popups. X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a02d1ac962da03436c4d5062d50fc95ca1284008;p=profile%2Fivi%2Fqtbase.git 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 Reviewed-by: Miikka Heikkinen Reviewed-by: Jonathan Liu Reviewed-by: Jørgen Lind --- diff --git a/src/widgets/kernel/qwidget_qpa.cpp b/src/widgets/kernel/qwidget_qpa.cpp index a1a414e..a94eceb 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(); + } } } }