OSDN Git Service

another take on popups
authorIvailo Monev <xakepa10@laimg.moc>
Sun, 6 Nov 2016 18:34:31 +0000 (18:34 +0000)
committerIvailo Monev <xakepa10@laimg.moc>
Sun, 6 Nov 2016 18:34:31 +0000 (18:34 +0000)
Signed-off-by: Ivailo Monev <xakepa10@laimg.moc>
src/gui/kernel/qapplication.cpp
src/gui/kernel/qapplication_x11.cpp

index e0b1c00..3703ae6 100644 (file)
@@ -861,7 +861,7 @@ QApplication::Type QApplication::type()
 
 QWidget *QApplication::activePopupWidget()
 {
-    if (QApplicationPrivate::popupWidgets && !QApplicationPrivate::popupWidgets->isEmpty())
+    if (QApplicationPrivate::popupWidgets)
         QApplicationPrivate::popupWidgets->last();
     return Q_NULLPTR;
 }
index 20b8b41..e57bee7 100644 (file)
@@ -4097,9 +4097,9 @@ bool QETWidget::translateMouseEvent(const XEvent *event)
     if (type == 0)                                // don't send event
         return false;
 
-    QWidget *popup = qApp->activePopupWidget();
-    if (popup) {                        // in popup mode
-        QWidget *activePopupWidget = qApp->activePopupWidget();
+    if (QApplicationPrivate::popupWidgets) {                        // in popup mode
+        QWidget *popup = QApplicationPrivate::popupWidgets->last();
+        QWidget *activePopupWidget = QApplicationPrivate::popupWidgets->last();
         if (popup != this) {
             if (event->type == LeaveNotify)
                 return false;