summaryrefslogtreecommitdiffstats
path: root/src/plugins
diff options
context:
space:
mode:
authorSamuel Rødal <samuel.rodal@digia.com>2013-01-23 08:37:12 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-01-23 10:57:34 +0100
commitd4f4ee4e033a62858aaf4f29970bc404d9b4c009 (patch)
tree8cb711d49466e3bc58df2a17af438f971a9145e9 /src/plugins
parentb077e67fd2538bc972eb5f050c7e0d28681a30ca (diff)
Fixed copy text bug as well as potential other latent xcb plugin bugs.
As Gatis found out the copy text bug is caused by the xcb plugin's handleEnterNotifyEvent() receiving an event with a seemingly random "time" member. That is however not due to a bug in the X server but rather due to a missing break statement in the event dispatching in qxcbconnection.cpp, causing an xcb_client_message_event_t to be treated as an xcb_enter_notify_event_t, and thus an xcb_window_t to be treated as an xcb_timestamp_t. The other xcb_enter_notify_event_t values would of course also be complete garbage. Task-number: QTCREATORBUG-8476 Task-number: QTBUG-28398 Change-Id: Id8c09a6682f78b646a0d1d27b0650248bbfa1046 Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com> Reviewed-by: Gatis Paeglis <gatis.paeglis@digia.com>
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/platforms/xcb/qxcbconnection.cpp1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/plugins/platforms/xcb/qxcbconnection.cpp b/src/plugins/platforms/xcb/qxcbconnection.cpp
index 1192894693..d261655cbd 100644
--- a/src/plugins/platforms/xcb/qxcbconnection.cpp
+++ b/src/plugins/platforms/xcb/qxcbconnection.cpp
@@ -770,6 +770,7 @@ void QXcbConnection::handleXcbEvent(xcb_generic_event_t *event)
HANDLE_PLATFORM_WINDOW_EVENT(xcb_unmap_notify_event_t, event, handleUnmapNotifyEvent);
case XCB_CLIENT_MESSAGE:
handleClientMessageEvent((xcb_client_message_event_t *)event);
+ break;
case XCB_ENTER_NOTIFY:
HANDLE_PLATFORM_WINDOW_EVENT(xcb_enter_notify_event_t, event, handleEnterNotifyEvent);
case XCB_LEAVE_NOTIFY: