Make QApplicationPrivate::inPopupMode() static for
convenience.
Task-number: QTBUG-26095
Change-Id: I98dc1e40d357592b790cd51d7aca60c2be9f380f
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
\snippet code/src_gui_kernel_qapplication.cpp 13
*/
-bool QApplicationPrivate::inPopupMode() const
+bool QApplicationPrivate::inPopupMode()
{
return QApplicationPrivate::popupWidgets != 0;
}
static void x11_initialize_style();
#endif
- bool inPopupMode() const;
+ static bool inPopupMode();
void closePopup(QWidget *popup);
void openPopup(QWidget *popup);
static void setFocusWidget(QWidget *focus, Qt::FocusReason reason);
if (QApplicationPrivate::instance()->modalState() && !qt_try_modal(m_widget, event->type()))
return;
- QObject *receiver = focusObject();
-
+ QObject *receiver = 0;
+ if (QApplicationPrivate::inPopupMode()) {
+ QWidget *popup = QApplication::activePopupWidget();
+ QWidget *popupFocusWidget = popup->focusWidget();
+ receiver = popupFocusWidget ? popupFocusWidget : popup;
+ }
+ if (!receiver)
+ receiver = focusObject();
QGuiApplication::sendSpontaneousEvent(receiver, event);
}