File compiz-kde4-paint-fix.diff of Package compiz

From: Dennis Kasprzyk <onestone@opencompositing.org>
Date: Wed, 18 Jun 2008 12:58:30 +0000 (+0200)
Subject: Use a single shot timer to prevent recursive repaint calls, if a decoration sets... 
X-Git-Url: http://gitweb.compiz-fusion.org/?p=compiz;a=commitdiff_plain;h=819acbd18169d2d436abb9c1624e823f75e9c733;hp=c05dae8dfa1d6f9f48921a99323be6870fc4b521

Use a single shot timer to prevent recursive repaint calls, if a decoration sets its mask during repaint.
---

diff --git a/kde/window-decorator-kde4/window.cpp b/kde/window-decorator-kde4/window.cpp
index b13dc23..c24c3c1 100644
--- a/kde/window-decorator-kde4/window.cpp
+++ b/kde/window-decorator-kde4/window.cpp
@@ -1147,7 +1147,7 @@ KWD::Window::setMask (const QRegion &reg, int)
 	mUniqueVertShape = uniqueVertShape;
 
 	if (mPixmap)
-	    updateShadow ();
+	    QTimer::singleShot (0, this, SLOT (updateShadow ()));
     }
 }
 
@@ -1288,8 +1288,6 @@ KWD::Window::rebindPixmap (void)
 				     xformat, 0, NULL);
 
     updateShadow ();
-
-    mDecor->widget ()->update ();
 }
 
 bool
diff --git a/kde/window-decorator-kde4/window.h b/kde/window-decorator-kde4/window.h
index 0441fbb..5a77a27 100644
--- a/kde/window-decorator-kde4/window.h
+++ b/kde/window-decorator-kde4/window.h
@@ -187,7 +187,6 @@ class Window:public QWidget, public KDecorationBridge {
 
     private:
 	void createDecoration (void);
-	void updateShadow (void);
 	bool resizeDecoration (bool force = false);
 	void updateBlurProperty (int topOffset,
 				 int bottomOffset,
@@ -203,6 +202,7 @@ class Window:public QWidget, public KDecorationBridge {
 
 
     private slots:
+	void updateShadow (void);
 	void handlePopupActivated (QAction *action);
 	void handleOpacityPopupActivated (QAction *action);
 	void handleDesktopPopupActivated (QAction *action);

openSUSE Build Service is sponsored by