summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGabriel de Dietrich <gabriel.dedietrich@qt.io>2016-05-16 16:28:24 -0700
committerJani Heikkinen <jani.heikkinen@qt.io>2016-05-20 06:09:06 +0000
commit9e3e98759028dc6b6452c8fd426dd00622ffc7ae (patch)
tree9536fa349df43442ea7e1fd274859a885e1d2f5b
parenta1dccd0708ae805b014489b5b16cc055d3001c50 (diff)
QNSView: Pass on the responder chain if deletion is pending
Change-Id: I7d098b61f6feb2ac38582c0efb1bbdf25a83e967 Task-number: QTBUG-53398 Reviewed-by: René J.V. Bertin <rjvbertin@gmail.com> Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
-rw-r--r--src/plugins/platforms/cocoa/qnsview.mm12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/plugins/platforms/cocoa/qnsview.mm b/src/plugins/platforms/cocoa/qnsview.mm
index 0d58faa5bf..e78cc411a8 100644
--- a/src/plugins/platforms/cocoa/qnsview.mm
+++ b/src/plugins/platforms/cocoa/qnsview.mm
@@ -653,7 +653,9 @@ QT_WARNING_POP
- (BOOL)becomeFirstResponder
{
- if (m_window && (m_window->flags() & Qt::WindowTransparentForInput) )
+ if (!m_window || !m_platformWindow)
+ return NO;
+ if (m_window->flags() & Qt::WindowTransparentForInput)
return NO;
if (!m_platformWindow->windowIsPopupType() && !m_isMenuView)
QWindowSystemInterface::handleWindowActivated([self topLevelWindow]);
@@ -662,11 +664,13 @@ QT_WARNING_POP
- (BOOL)acceptsFirstResponder
{
+ if (!m_window || !m_platformWindow)
+ return NO;
if (m_isMenuView)
return NO;
if (m_platformWindow->shouldRefuseKeyWindowAndFirstResponder())
return NO;
- if (m_window && (m_window->flags() & Qt::WindowTransparentForInput) )
+ if (m_window->flags() & Qt::WindowTransparentForInput)
return NO;
if ((m_window->flags() & Qt::ToolTip) == Qt::ToolTip)
return NO;
@@ -676,7 +680,9 @@ QT_WARNING_POP
- (BOOL)acceptsFirstMouse:(NSEvent *)theEvent
{
Q_UNUSED(theEvent)
- if (m_window && (m_window->flags() & Qt::WindowTransparentForInput) )
+ if (!m_window || !m_platformWindow)
+ return NO;
+ if (m_window->flags() & Qt::WindowTransparentForInput)
return NO;
return YES;
}