[qt] filter event patch, avoid "ghost entries in kde taskbar" problem (kde#275469) re-enable -qvfb

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


commit af10e0158f7204ee41fbc31377da2898a7ff4113
Author: Rex Dieter <rdieter at fedoraproject.org>
Date:   Tue Dec 27 16:37:14 2011 -0600

    filter event patch, avoid "ghost entries in kde taskbar" problem (kde#275469)
    re-enable -qvfb

 ...rywhere-opensource-src-4.8.0-filter_event.patch |   15 +++++++++++++++
 qt.spec                                            |   15 +++++++++++----
 2 files changed, 26 insertions(+), 4 deletions(-)
---
diff --git a/qt-everywhere-opensource-src-4.8.0-filter_event.patch b/qt-everywhere-opensource-src-4.8.0-filter_event.patch
new file mode 100644
index 0000000..ef6de92
--- /dev/null
+++ b/qt-everywhere-opensource-src-4.8.0-filter_event.patch
@@ -0,0 +1,15 @@
+--- 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 ||
diff --git a/qt.spec b/qt.spec
index 4b22600..a6c2164 100644
--- a/qt.spec
+++ b/qt.spec
@@ -11,7 +11,7 @@ Summary: Qt toolkit
 Name:    qt
 Epoch:   1
 Version: 4.8.0
-Release: 3%{?dist}
+Release: 4%{?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
@@ -100,6 +100,10 @@ Patch76: qt-everywhere-opensource-src-4.8.0-s390-atomic.patch
 # don't spam if libicu is not present at runtime
 Patch77:  qt-everywhere-opensource-src-4.8.0-icu_no_spam.patch
 
+# avoid dropping events, which lead to "ghost entries in kde task manager" problem
+# https://bugs.kde.org/show_bug.cgi?id=275469
+Patch78: qt-everywhere-opensource-src-4.8.0-filter_event.patch
+
 # upstream patches
 
 # security patches
@@ -316,9 +320,7 @@ Requires: %{name}%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
 %description examples
 %{summary}.
 
-## FIXME, ftbfs -- rex
-## .obj/release-shared/qwssignalhandler.o: In function `QWSSignalHandler::clear()': qwssignalhandler.cpp:(.text+0x349): undefined reference to `QWSLock::~QWSLock()'
-#define qvfb 1
+%define qvfb 1
 %package qvfb
 Summary: Virtual frame buffer for Qt for Embedded Linux
 Group: Applications/Emulators
@@ -428,6 +430,7 @@ popd
 %patch75 -p1 -b .ppc64-crash
 %patch76 -p1 -b .s390-atomic
 %patch77 -p1 -b .icu_no_spam
+%patch78 -p1 -b .filter_events
 
 # upstream patches
 
@@ -1054,6 +1057,10 @@ fi
 
 
 %changelog
+* Tue Dec 27 2011 Rex Dieter <rdieter at fedoraproject.org> 4.8.0-4
+- filter event patch, avoid "ghost entries in kde taskbar" problem (kde#275469)
+- re-enable -qvfb
+
 * Tue Dec 20 2011 Rex Dieter <rdieter at fedoraproject.org> 4.8.0-3
 - don't spam if libicu is not present at runtime (#759923)
 


More information about the scm-commits mailing list