From 15fbc0112d260f680cb940c3bae531cb44a3895c Mon Sep 17 00:00:00 2001
From: Friedemann Kleint <Friedemann.Kleint@digia.com>
Date: Wed, 22 May 2013 13:26:31 +0200
Subject: [PATCH] Suppress "Click to focus" for widget windows.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Calling requestActivate() on native child widgets
can cause focus problems (keyboard input going to
widgets that don't handle it,etc).

Breakage introduced by:
4675681b5e88b178adbdef775ac6a4b1e573458 .

Task-number: QTBUG-30922

Change-Id: I4efdfef6bffc89fe62156d248f05ed99c58bf794
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
---
 src/plugins/platforms/windows/qwindowsmousehandler.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/plugins/platforms/windows/qwindowsmousehandler.cpp b/src/plugins/platforms/windows/qwindowsmousehandler.cpp
index dd16ea1c6f1..fd00a07d6c3 100644
--- a/src/plugins/platforms/windows/qwindowsmousehandler.cpp
+++ b/src/plugins/platforms/windows/qwindowsmousehandler.cpp
@@ -237,8 +237,8 @@ bool QWindowsMouseHandler::translateMouseEvent(QWindow *window, HWND hwnd,
         platformWindow->setFlag(QWindowsWindow::AutoMouseCapture);
         if (QWindowsContext::verboseEvents)
             qDebug() << "Automatic mouse capture " << window;
-        // Implement "Click to focus" for native child windows.
-        if (!window->isTopLevel() && QGuiApplication::focusWindow() != window)
+        // Implement "Click to focus" for native child windows (unless it is a native widget window).
+        if (!window->isTopLevel() && !window->inherits("QWidgetWindow") && QGuiApplication::focusWindow() != window)
             window->requestActivate();
     } else if (platformWindow->hasMouseCapture()
                && platformWindow->testFlag(QWindowsWindow::AutoMouseCapture)
-- 
GitLab