From ab3a8443faa36799ab8142e48d25d8ff10f9d0bf Mon Sep 17 00:00:00 2001
From: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
Date: Fri, 29 Apr 2016 18:07:36 +0200
Subject: [PATCH] QCocoaWindow - do not call resignKeyWindow
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

QCocoaWindow::setMouseGrabEnabled/setKeyboardGrabEnabled calls
resignKeyWindow. According to Apple's docs, we should _never_ call
this function (it's done by Cocoa automatically).
Calling this function leaves a window in weird state where it can
not become key again until you explicitly make another window key first.

Task-number: QTBUG-53050
Change-Id: I7a887659df8df11880328ffa2adc07c4a3af63e6
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
---
 src/plugins/platforms/cocoa/qcocoawindow.mm | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/src/plugins/platforms/cocoa/qcocoawindow.mm b/src/plugins/platforms/cocoa/qcocoawindow.mm
index dd67946a272..c5519995b66 100644
--- a/src/plugins/platforms/cocoa/qcocoawindow.mm
+++ b/src/plugins/platforms/cocoa/qcocoawindow.mm
@@ -1135,8 +1135,7 @@ bool QCocoaWindow::setKeyboardGrabEnabled(bool grab)
 
     if (grab && ![m_nsWindow isKeyWindow])
         [m_nsWindow makeKeyWindow];
-    else if (!grab && [m_nsWindow isKeyWindow])
-        [m_nsWindow resignKeyWindow];
+
     return true;
 }
 
@@ -1147,8 +1146,7 @@ bool QCocoaWindow::setMouseGrabEnabled(bool grab)
 
     if (grab && ![m_nsWindow isKeyWindow])
         [m_nsWindow makeKeyWindow];
-    else if (!grab && [m_nsWindow isKeyWindow])
-        [m_nsWindow resignKeyWindow];
+
     return true;
 }
 
-- 
GitLab