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 ®, 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);