summaryrefslogtreecommitdiffstats
path: root/src/gui/kernel/qwindow_p.h
diff options
context:
space:
mode:
authorJørgen Lind <jorgen.lind@digia.com>2014-10-21 13:47:01 +0200
committerJørgen Lind <jorgen.lind@digia.com>2014-11-07 13:24:07 +0100
commit190bfbae64006216b4114a02153c60d604ac24f7 (patch)
tree0538f90c5fd0888b0e7994abdb8d3a5498e71735 /src/gui/kernel/qwindow_p.h
parentef25d2efdbc74cd334f010649f1c155be529235d (diff)
Ensure that a leave event is sent to a popup that is being closed
If a context menu contains a menu item which will open a dialog, the context menu will never get the leave event, which might leave the menu in an invalid state. Synthetic leave events are sent to windows, but not to popups that are blocked by modal dialogs. Hovever, a popup is removed from the popup stack in QApplication before it receives the leave event. Therefore always give popups events, even when they are not visible. Task-number: QTBUG-38021 Change-Id: I63f6febed44f1e7c8f29e7a09af07f32b4ddbc82 Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Diffstat (limited to 'src/gui/kernel/qwindow_p.h')
-rw-r--r--src/gui/kernel/qwindow_p.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/gui/kernel/qwindow_p.h b/src/gui/kernel/qwindow_p.h
index ea0bb75d85..40f23b1c36 100644
--- a/src/gui/kernel/qwindow_p.h
+++ b/src/gui/kernel/qwindow_p.h
@@ -137,6 +137,10 @@ public:
virtual void clearFocusObject();
+ bool isPopup() const { return (windowFlags & Qt::WindowType_Mask) == Qt::Popup; }
+
+ static QWindowPrivate *get(QWindow *window) { return window->d_func(); }
+
QWindow::SurfaceType surfaceType;
Qt::WindowFlags windowFlags;
QWindow *parentWindow;