From 38dc6ccca0d65fa2df4297de4f4e2a90e7ab2fc6 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Wed, 8 May 2013 14:14:04 +0200 Subject: QWidgetWindow: Prioritize keyboard grabber over popup for key events. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fix the inline editor of the QMenuBar in Qt Designer not working due to the key events being sent to the QMenu which is open at that time. Task-number: QTBUG-31059 Change-Id: Ic96bc119d0d2566d8f8d6ee62858445a70a447b7 Reviewed-by: Samuel Rødal --- src/widgets/kernel/qwidgetwindow.cpp | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/widgets/kernel/qwidgetwindow.cpp b/src/widgets/kernel/qwidgetwindow.cpp index b60648549e..c19b617091 100644 --- a/src/widgets/kernel/qwidgetwindow.cpp +++ b/src/widgets/kernel/qwidgetwindow.cpp @@ -490,14 +490,12 @@ void QWidgetWindow::handleKeyEvent(QKeyEvent *event) if (QApplicationPrivate::instance()->modalState() && !qt_try_modal(m_widget, event->type())) return; - QObject *receiver = 0; - if (QApplicationPrivate::inPopupMode()) { + QObject *receiver = QWidget::keyboardGrabber(); + if (!receiver && QApplicationPrivate::inPopupMode()) { QWidget *popup = QApplication::activePopupWidget(); QWidget *popupFocusWidget = popup->focusWidget(); receiver = popupFocusWidget ? popupFocusWidget : popup; } - if (!receiver) - receiver = QWidget::keyboardGrabber(); if (!receiver) receiver = focusObject(); QGuiApplication::sendSpontaneousEvent(receiver, event); -- cgit v1.2.3