Hi,

We discussed this on IRC. I thought I would send in the patch, simple as it
is.

The issue is that PrivateAnimScreen's constructor in animation.cpp
initializes mPluginActive twice and PrivateAnimWindow doesn't initialize its
mPluginActive at all. I think the second initialization loop should be moved
to the PrivateAnimWindow constructor.

This fixes a bug for me where open window animations don't always fire.

The patch is attached.

Thanks,
Jay
From a05c7cbc1368f67a3a969ab751c98af86e6c8064 Mon Sep 17 00:00:00 2001
From: Jay Catherwood <jay.catherw...@gmail.com>
Date: Thu, 22 Jul 2010 00:13:09 -0400
Subject: [PATCH] Initialize pw->mPluginActive correctly

---
 src/animation.cpp |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/animation.cpp b/src/animation.cpp
index 6303b25..850ffee 100644
--- a/src/animation.cpp
+++ b/src/animation.cpp
@@ -2348,9 +2348,6 @@ PrivateAnimScreen::PrivateAnimScreen (CompScreen *s, AnimScreen *as) :
     for (int i = 0; i < WatchedScreenPluginNum; i++)
 	mPluginActive[i] = false;
 
-    for (int i = 0; i < WatchedWindowPluginNum; i++)
-	mPluginActive[i] = false;
-
     // Never animate screen-dimming layer of logout window and gksu.
     mNeverAnimateMatch |= "title=gksu";
     mNeverAnimateMatch |= "title=x-session-manager";
@@ -2508,6 +2505,9 @@ PrivateAnimWindow::PrivateAnimWindow (CompWindow *w,
     mBB.x1 = mBB.y1 = MAXSHORT;
     mBB.x2 = mBB.y2 = MINSHORT;
 
+    for (int i = 0; i < WatchedWindowPluginNum; i++)
+	mPluginActive[i] = false;
+
     if (w->minimized ())
     {
 	mState = mNewState = IconicState;
-- 
1.6.3.3

_______________________________________________
compiz mailing list
compiz@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/compiz

Reply via email to