--- qt-opensource-4.8.0.old/src/gui/kernel/qapplication_x11.cpp 2011-12-16 03:22:33.918428374 -0500 +++ qt-opensource-4.8.0.new/src/gui/kernel/qapplication_x11.cpp 2011-12-27 06:39:22.852191952 -0500 @@ -4244,6 +4244,12 @@ bool QETWidget::translateMouseEvent(cons && (nextEvent.xclient.message_type == ATOM(_QT_SCROLL_DONE) || (nextEvent.xclient.message_type == ATOM(WM_PROTOCOLS) && (Atom)nextEvent.xclient.data.l[0] == ATOM(_NET_WM_SYNC_REQUEST))))) { + // As we may run through a significant number of a large class of non-MotionNotify + // events here, without returning to the event loop, just before processing nextEvent, + // pass it through QAbstractEventDispatcher::filterEvent(). Note that this issue may + // exist elsewhere, wherever events are compressed in a similar manner. + if (QAbstractEventDispatcher::instance()->filterEvent(&nextEvent)) + continue; qApp->x11ProcessEvent(&nextEvent); continue; } else if (nextEvent.type != MotionNotify ||