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