summaryrefslogtreecommitdiff
path: root/extra/qt/improved-filter-event.patch
diff options
context:
space:
mode:
Diffstat (limited to 'extra/qt/improved-filter-event.patch')
-rw-r--r--extra/qt/improved-filter-event.patch98
1 files changed, 0 insertions, 98 deletions
diff --git a/extra/qt/improved-filter-event.patch b/extra/qt/improved-filter-event.patch
deleted file mode 100644
index b03cdbe94..000000000
--- a/extra/qt/improved-filter-event.patch
+++ /dev/null
@@ -1,98 +0,0 @@
---- 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 2012-01-07 18:18:40.258246384 -0500
-@@ -4244,7 +4205,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))))) {
-- qApp->x11ProcessEvent(&nextEvent);
-+ // As we may run through a significant number of a large class of non-MotionNotify
-+ // events here, without returning to the event loop, first pass nextEvent to
-+ // QAbstractEventDispatcher::filterEvent() to allow applications which override
-+ // QAbstractEventDispatcher::filterEvent() to handle the event first.
-+ if (!QAbstractEventDispatcher::instance()->filterEvent(&nextEvent))
-+ qApp->x11ProcessEvent(&nextEvent);
- continue;
- } else if (nextEvent.type != MotionNotify ||
- nextEvent.xmotion.window != event->xmotion.window ||
---- qt-opensource-4.8.0.old/src/gui/kernel/qclipboard_x11.cpp 2011-12-08 00:06:02.000000000 -0500
-+++ qt-opensource-4.8.0.new/src/gui/kernel/qclipboard_x11.cpp 2012-01-07 18:30:35.298287639 -0500
-@@ -573,7 +573,11 @@ bool QX11Data::clipboardWaitForEvent(Win
-
- // process other clipboard events, since someone is probably requesting data from us
- XEvent e;
-- if (XCheckIfEvent(X11->display, &e, checkForClipboardEvents, 0))
-+ // Some applications may override QAbstractEventDispatcher::filterEvent(), so
-+ // pass event to QAbstractEventDispatcher::filterEvent() before processing in
-+ // x11ProcessEvent().
-+ if (XCheckIfEvent(X11->display, &e, checkForClipboardEvents, 0) &&
-+ !QAbstractEventDispatcher::instance()->filterEvent(&e))
- qApp->x11ProcessEvent(&e);
-
- now.start();
---- qt-opensource-4.8.0.old/src/gui/kernel/qdnd_x11.cpp 2011-12-08 00:06:02.000000000 -0500
-+++ qt-opensource-4.8.0.new/src/gui/kernel/qdnd_x11.cpp 2012-01-07 18:28:13.841279478 -0500
-@@ -42,6 +42,7 @@
- #include "qplatformdefs.h"
-
- #include "qapplication.h"
-+#include "qabstracteventdispatcher.h"
-
- #ifndef QT_NO_DRAGANDDROP
-
-@@ -1941,7 +1942,11 @@ Qt::DropAction QDragManager::drag(QDrag
- timer.start();
- do {
- XEvent event;
-- if (XCheckTypedEvent(X11->display, ClientMessage, &event))
-+ // Some applications may override QAbstractEventDispatcher::filterEvent(), so
-+ // pass event to QAbstractEventDispatcher::filterEvent() before processing in
-+ // x11ProcessEvent().
-+ if (XCheckTypedEvent(X11->display, ClientMessage, &event) &&
-+ !QAbstractEventDispatcher::instance()->filterEvent(&event))
- qApp->x11ProcessEvent(&event);
-
- // sleep 50 ms, so we don't use up CPU cycles all the time.
---- qt-opensource-4.8.0.old/src/gui/kernel/qwidget_x11.cpp 2011-12-08 00:06:02.000000000 -0500
-+++ qt-opensource-4.8.0.new/src/gui/kernel/qwidget_x11.cpp 2012-01-07 18:29:26.286283657 -0500
-@@ -44,6 +44,7 @@
- #include "qdesktopwidget.h"
- #include "qapplication.h"
- #include "qapplication_p.h"
-+#include "qabstracteventdispatcher.h"
- #include "qnamespace.h"
- #include "qpainter.h"
- #include "qbitmap.h"
-@@ -376,17 +377,22 @@ void qt_x11_wait_for_window_manager(QWid
- do {
- if (XEventsQueued(X11->display, QueuedAlready)) {
- XNextEvent(X11->display, &ev);
-- qApp->x11ProcessEvent(&ev);
--
-- switch (state) {
-- case Initial:
-- if (ev.type == MapNotify && ev.xany.window == winid)
-- state = Mapped;
-- break;
-- case Mapped:
-- if (ev.type == Expose && ev.xany.window == winid)
-- return;
-- break;
-+ // Some applications may override QAbstractEventDispatcher::filterEvent(), so
-+ // pass event to QAbstractEventDispatcher::filterEvent() before processing in
-+ // x11ProcessEvent().
-+ if (!QAbstractEventDispatcher::instance()->filterEvent(&ev)) {
-+ qApp->x11ProcessEvent(&ev);
-+
-+ switch (state) {
-+ case Initial:
-+ if (ev.type == MapNotify && ev.xany.window == winid)
-+ state = Mapped;
-+ break;
-+ case Mapped:
-+ if (ev.type == Expose && ev.xany.window == winid)
-+ return;
-+ break;
-+ }
- }
- } else {
- if (!XEventsQueued(X11->display, QueuedAfterFlush))