Hello community,

here is the log from the commit of package kdelibs4 for openSUSE:Factory 
checked in at 2013-06-05 11:53:07
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kdelibs4 (Old)
 and      /work/SRC/openSUSE:Factory/.kdelibs4.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "kdelibs4"

Changes:
--------
--- /work/SRC/openSUSE:Factory/kdelibs4/kdelibs4-apidocs.changes        
2013-05-16 16:49:18.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.kdelibs4.new/kdelibs4-apidocs.changes   
2013-06-05 11:53:08.000000000 +0200
@@ -1,0 +2,7 @@
+Mon May 27 18:42:23 UTC 2013 - [email protected]
+
+- Added Fix-KWindowSystem-compositingChanged-signal.patch, fixes
+  long standing bug of KWin clients (e.g. plasma) not detecting
+  compositing state (kde#179042)
+
+-------------------------------------------------------------------
kdelibs4.changes: same change

New:
----
  Fix-KWindowSystem-compositingChanged-signal.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ kdelibs4.spec ++++++
--- /var/tmp/diff_new_pack.M7PgHI/_old  2013-06-05 11:53:09.000000000 +0200
+++ /var/tmp/diff_new_pack.M7PgHI/_new  2013-06-05 11:53:09.000000000 +0200
@@ -121,6 +121,9 @@
 Patch100:       fix-freeX11Pixmaps.patch
 # PATCH-FIX-UPSTREAM 
dont-show-passwords-contained-in-HTTP-URLs-in-error-messages.patch -- Ommits 
passwords contained in HTTP URLs in error messages kde#319428
 Patch101:       
dont-show-passwords-contained-in-HTTP-URLs-in-error-messages.patch
+# PATCH-FIX-UPSTREAM Fix-KWindowSystem-compositingChanged-signal.patch, fixes 
long standing bug of KWin clients (e.g. plasma) not detecting
+# compositing state (kde#179042)
+Patch102:       Fix-KWindowSystem-compositingChanged-signal.patch
 PreReq:         permissions
 Requires:       soprano >= %( echo `rpm -q --queryformat '%{VERSION}' 
libsoprano-devel`)
 Recommends:     strigi >= %( echo `rpm -q --queryformat '%{VERSION}' 
strigi-devel`)
@@ -193,6 +196,7 @@
 %patch27 -p1
 %patch100 -p1
 %patch101 -p1
+%patch102 -p1
 
 #
 # define KDE version exactly

++++++ Fix-KWindowSystem-compositingChanged-signal.patch ++++++
>From 73fa526cd5541e74c3e992e9fcb0278efaaa5366 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Thomas=20L=C3=BCbking?= <[email protected]>
Date: Fri, 28 Dec 2012 20:49:15 +0100
Subject: [PATCH 3/3] Fix KWindowSystem::compositingChanged signal

This as a workaround also listens to selection notifications
on the rootwindow as caused by Qt which also blindly compresses
away the event on the KWindowSystem WId

BUG: 179042
FIXED-IN: 4.11
REVIEW: 107983
---
 kdeui/windowmanagement/kwindowsystem_x11.cpp | 32 ++++++++++++++++++++++------
 1 file changed, 25 insertions(+), 7 deletions(-)

diff --git a/kdeui/windowmanagement/kwindowsystem_x11.cpp 
b/kdeui/windowmanagement/kwindowsystem_x11.cpp
index f9b3cc1..be32fc5 100644
--- a/kdeui/windowmanagement/kwindowsystem_x11.cpp
+++ b/kdeui/windowmanagement/kwindowsystem_x11.cpp
@@ -152,14 +152,32 @@ bool KWindowSystemPrivate::x11Event( XEvent * ev )
     KWindowSystem* s_q = KWindowSystem::self();
 
 #ifdef HAVE_XFIXES
-    if ( ev->type == xfixesEventBase + XFixesSelectionNotify && 
ev->xany.window == winId() ) {
-        XFixesSelectionNotifyEvent *event = 
reinterpret_cast<XFixesSelectionNotifyEvent*>(ev);
-        bool haveOwner = event->owner != None;
-        if (compositingEnabled != haveOwner) {
-            compositingEnabled = haveOwner;
-            emit s_q->compositingChanged( compositingEnabled );
+    if ( ev->type == xfixesEventBase + XFixesSelectionNotify ) {
+        if ( ev->xany.window == winId() ) {
+            XFixesSelectionNotifyEvent *event = 
reinterpret_cast<XFixesSelectionNotifyEvent*>(ev);
+            bool haveOwner = event->owner != None;
+            if (compositingEnabled != haveOwner) {
+                compositingEnabled = haveOwner;
+                emit s_q->compositingChanged( compositingEnabled );
+            }
+            return true;
         }
-        return true;
+        // Qt compresses XFixesSelectionNotifyEvents without caring about the 
actual window
+        // gui/kernel/qapplication_x11.cpp
+        // until that can be assumed fixed, we also react on events on the 
root (caused by Qts own compositing tracker)
+        if ( ev->xany.window == QX11Info::appRootWindow() ) {
+            XFixesSelectionNotifyEvent *event = 
reinterpret_cast<XFixesSelectionNotifyEvent*>(ev);
+            if (event->selection == net_wm_cm) {
+                bool haveOwner = event->owner != None;
+                if (compositingEnabled != haveOwner) {
+                    compositingEnabled = haveOwner;
+                    emit s_q->compositingChanged( compositingEnabled );
+                }
+                // NOTICE this is not our event, we just randomly captured it 
from Qt -> pass on
+                return false;
+            }
+        }
+        return false;
     }
 #endif
 
-- 
1.8.2.2


-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to