From 1e5249bfa49c98116ad7743a89c77b594cfd38fa Mon Sep 17 00:00:00 2001 From: Volker Hilsheimer Date: Wed, 15 Sep 2021 10:12:16 +0200 Subject: [PATCH] macOS: remove mouse and key grabbing logic from Cocoa plugin MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit For QGuiApplication with QWindow, no other QPA plugins do so, and for QApplication with QWidgets, QApplication implements popup functionality consistently. Task-number: QTBUG-96450 Change-Id: I47489296e0e470d8948ca7858d0a2608c58b2975 Reviewed-by: Tor Arne Vestbø --- src/plugins/platforms/cocoa/qnsview_keys.mm | 6 ------ src/plugins/platforms/cocoa/qnsview_mouse.mm | 9 --------- 2 files changed, 15 deletions(-) diff --git a/src/plugins/platforms/cocoa/qnsview_keys.mm b/src/plugins/platforms/cocoa/qnsview_keys.mm index c8c6fb320a..5e99d0a9c3 100644 --- a/src/plugins/platforms/cocoa/qnsview_keys.mm +++ b/src/plugins/platforms/cocoa/qnsview_keys.mm @@ -48,12 +48,6 @@ // FIXME: Why is this the top level window and not m_platformWindow? QWindow *window = [self topLevelWindow]; - if (QCocoaWindow *popup = QCocoaIntegration::instance()->activePopupWindow()) { - // Popups implicitly grab key events; forward to the active popup if there is one. - // This allows popups to e.g. intercept shortcuts and close the popup in response. - if (!popup->window()->flags().testFlag(Qt::ToolTip)) - window = popup->window(); - } // We will send a key event unless the input method handles it QBoolBlocker sendKeyEventGuard(m_sendKeyEvent, true); diff --git a/src/plugins/platforms/cocoa/qnsview_mouse.mm b/src/plugins/platforms/cocoa/qnsview_mouse.mm index 4dc9ce0ad7..d6492f858a 100644 --- a/src/plugins/platforms/cocoa/qnsview_mouse.mm +++ b/src/plugins/platforms/cocoa/qnsview_mouse.mm @@ -146,15 +146,6 @@ static const QPointingDevice *pointingDeviceFor(qint64 deviceID) if (!targetView.platformWindow) return; - // Popups implicitly grap mouse events; forward to the active popup if there is one - if (QCocoaWindow *popup = QCocoaIntegration::instance()->activePopupWindow()) { - // Tooltips must be transparent for mouse events - // The bug reference is QTBUG-46379 - if (!popup->window()->flags().testFlag(Qt::ToolTip)) { - if (QNSView *popupView = qnsview_cast(popup->view())) - targetView = popupView; - } - } [targetView convertFromScreen:[self screenMousePoint:theEvent] toWindowPoint:&qtWindowPoint andScreenPoint:&qtScreenPoint]; ulong timestamp = [theEvent timestamp] * 1000;