diff options
author | Bradley T. Hughes <bradley.hughes@nokia.com> | 2009-09-28 10:19:10 (GMT) |
---|---|---|
committer | Bradley T. Hughes <bradley.hughes@nokia.com> | 2009-09-28 10:40:48 (GMT) |
commit | 196ca2202d74538ab8d34e47ec8966d4b0a0b8e2 (patch) | |
tree | f5bc8436d7af73ae6b8f6e92e85108ae4eb859f9 /src/gui/kernel | |
parent | fe4dc49c8f4f201f7286027adb2ba21ffebc14cc (diff) | |
download | Qt-196ca2202d74538ab8d34e47ec8966d4b0a0b8e2.zip Qt-196ca2202d74538ab8d34e47ec8966d4b0a0b8e2.tar.gz Qt-196ca2202d74538ab8d34e47ec8966d4b0a0b8e2.tar.bz2 |
QEventLoop::ExcludeUserInputEvents should not allow the user to close the window
These types of input events are not handled by the normal mouse and
key event handlers on X11 and Windows. Add special cases for them to
make sure that they are not delivered while ExcludeUserInputEvents is
set.
Task-number: QTBUG-4242
Reviewed-by: Simon Hausmann
Diffstat (limited to 'src/gui/kernel')
-rw-r--r-- | src/gui/kernel/qeventdispatcher_x11.cpp | 2 | ||||
-rw-r--r-- | src/gui/kernel/qguieventdispatcher_glib.cpp | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/src/gui/kernel/qeventdispatcher_x11.cpp b/src/gui/kernel/qeventdispatcher_x11.cpp index ce1a11f..59977ec 100644 --- a/src/gui/kernel/qeventdispatcher_x11.cpp +++ b/src/gui/kernel/qeventdispatcher_x11.cpp @@ -105,7 +105,7 @@ bool QEventDispatcherX11::processEvents(QEventLoop::ProcessEventsFlags flags) // _qt_scrolldone protocols, queue all other // client messages if (event.xclient.format == 32) { - if (event.xclient.message_type == ATOM(WM_PROTOCOLS) || + if (event.xclient.message_type == ATOM(WM_PROTOCOLS) && (Atom) event.xclient.data.l[0] == ATOM(WM_TAKE_FOCUS)) { break; } else if (event.xclient.message_type == ATOM(_QT_SCROLL_DONE)) { diff --git a/src/gui/kernel/qguieventdispatcher_glib.cpp b/src/gui/kernel/qguieventdispatcher_glib.cpp index 6e98428..f8a638c 100644 --- a/src/gui/kernel/qguieventdispatcher_glib.cpp +++ b/src/gui/kernel/qguieventdispatcher_glib.cpp @@ -120,7 +120,7 @@ static gboolean x11EventSourceDispatch(GSource *s, GSourceFunc callback, gpointe // _qt_scrolldone protocols, queue all other // client messages if (event.xclient.format == 32) { - if (event.xclient.message_type == ATOM(WM_PROTOCOLS) || + if (event.xclient.message_type == ATOM(WM_PROTOCOLS) && (Atom) event.xclient.data.l[0] == ATOM(WM_TAKE_FOCUS)) { break; } else if (event.xclient.message_type == ATOM(_QT_SCROLL_DONE)) { |