[qt/f15] filter event patch, an attempt to avoid "ghost entries in kde taskbar" problem

Rex Dieter rdieter at fedoraproject.org
Tue Dec 27 22:22:56 UTC 2011


commit e1a66322aae3c8cac008340ce3712fc63f641e97
Author: Rex Dieter <rdieter at fedoraproject.org>
Date:   Tue Dec 27 16:22:53 2011 -0600

    filter event patch, an attempt to avoid "ghost entries in kde taskbar" problem

 ...rywhere-opensource-src-4.7.4-filter_event.patch |   15 +++++++++++++++
 qt.spec                                            |    9 ++++++++-
 2 files changed, 23 insertions(+), 1 deletions(-)
---
diff --git a/qt-everywhere-opensource-src-4.7.4-filter_event.patch b/qt-everywhere-opensource-src-4.7.4-filter_event.patch
new file mode 100644
index 0000000..4c0c824
--- /dev/null
+++ b/qt-everywhere-opensource-src-4.7.4-filter_event.patch
@@ -0,0 +1,15 @@
+--- qt-opensource-4.7.4.old/src/gui/kernel/qapplication_x11.cpp	2011-08-23 08:02:27.000000000 -0400
++++ qt-opensource-4.7.4.new/src/gui/kernel/qapplication_x11.cpp	2011-12-27 07:16:23.631320047 -0500
+@@ -4190,6 +4190,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 ||
diff --git a/qt.spec b/qt.spec
index 475e780..8d79849 100644
--- a/qt.spec
+++ b/qt.spec
@@ -18,7 +18,7 @@ Summary: Qt toolkit
 Name:    qt
 Epoch:   1
 Version: 4.7.4
-Release: 7%{?dist}
+Release: 8%{?dist}
 
 # See LGPL_EXCEPTIONS.txt, LICENSE.GPL3, respectively, for exception details
 License: (LGPLv2 with exceptions or GPLv3 with exceptions) and ASL 2.0 and BSD and FTL and MIT
@@ -95,6 +95,9 @@ Patch73: qt-everywhere-opensource-src-4.7.4-qml_no_strict_aliasing.patch
 # sql/drivers/tds/qsql_tds.cpp:341:49: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
 Patch74: qt-everywhere-opensource-src-4.7.4-tds_no_strict_aliasing.patch
 
+# avoid dropping events, which lead to "ghost entries in kde task manager" problem
+Patch75: qt-everywhere-opensource-src-4.7.4-filter_event.patch
+
 # upstream patches
 # Applications crash when using a visual with 24 bits per pixel 
 # https://bugreports.qt.nokia.com/browse/QTBUG-21754
@@ -539,6 +542,7 @@ Qt libraries used for drawing widgets and OpenGL items.
 %patch70 -p1 -b .QTBUG-14724
 %patch73 -p1 -b .qml_no_strict_aliasing
 %patch74 -p1 -b .tds_no_strict_aliasing
+%patch75 -p1 -b .filter_event
 
 ## upstream patches
 %patch100 -p1 -b .QTBUG-21754
@@ -1301,6 +1305,9 @@ fi
 
 
 %changelog
+* Tue Dec 27 2011 Rex Dieter <rdieter at fedoraproject.org> 1:4.7.4-8
+- filter event patch, an attempt to avoid "ghost entries in kde taskbar" problem
+
 * Wed Nov 16 2011 Rex Dieter <rdieter at fedoraproject.org> 1:4.7.4-7
 - drop kde-qt 0012 patch, it's broken if not upstream (#704882)
 


More information about the scm-commits mailing list