Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 291627 Details for
Bug 389467
Backport Martin Gräßlin's performance work from KDE trunk to KDE 4.7.3 [patch included]
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Backport Martin Gräßlin's performance work from KDE trunk to KDE 4.7.3
kwin-4.7.3-backport-trunk-performance.patch (text/plain), 52.46 KB, created by
Richard
on 2011-11-04 04:23:09 UTC
(
hide
)
Description:
Backport Martin Gräßlin's performance work from KDE trunk to KDE 4.7.3
Filename:
MIME Type:
Creator:
Richard
Created:
2011-11-04 04:23:09 UTC
Size:
52.46 KB
patch
obsolete
>diff -uNr a/kwin-4.7.3/kwin/effects/boxswitch/boxswitch.cpp b/kwin-4.7.3/kwin/effects/boxswitch/boxswitch.cpp >--- a/kwin-4.7.3/kwin/effects/boxswitch/boxswitch.cpp 2011-11-03 23:29:48.319553300 -0400 >+++ b/kwin-4.7.3/kwin/effects/boxswitch/boxswitch.cpp 2011-11-03 23:29:58.226553852 -0400 >@@ -950,6 +950,11 @@ > } > } > >+bool BoxSwitchEffect::isActive() const >+{ >+ return mActivated; >+} >+ > BoxSwitchEffect::ItemInfo::ItemInfo() > : iconFrame(NULL) > { >diff -uNr a/kwin-4.7.3/kwin/effects/boxswitch/boxswitch.h b/kwin-4.7.3/kwin/effects/boxswitch/boxswitch.h >--- a/kwin-4.7.3/kwin/effects/boxswitch/boxswitch.h 2011-11-03 23:29:48.319553300 -0400 >+++ b/kwin-4.7.3/kwin/effects/boxswitch/boxswitch.h 2011-11-03 23:29:58.227553851 -0400 >@@ -55,6 +55,7 @@ > > virtual void windowInputMouseEvent(Window w, QEvent* e); > virtual void* proxy(); >+ virtual bool isActive() const; > void activateFromProxy(int mode, bool animate, bool showText, float positioningFactor); > void paintWindowsBox(const QRegion& region); > >diff -uNr a/kwin-4.7.3/kwin/effects/coverswitch/coverswitch.cpp b/kwin-4.7.3/kwin/effects/coverswitch/coverswitch.cpp >--- a/kwin-4.7.3/kwin/effects/coverswitch/coverswitch.cpp 2011-11-03 23:29:48.321553301 -0400 >+++ b/kwin-4.7.3/kwin/effects/coverswitch/coverswitch.cpp 2011-11-03 23:29:58.229553850 -0400 >@@ -1000,4 +1000,9 @@ > } > } > >+bool CoverSwitchEffect::isActive() const >+{ >+ return mActivated || stop || stopRequested; >+} >+ > } // namespace >diff -uNr a/kwin-4.7.3/kwin/effects/coverswitch/coverswitch.h b/kwin-4.7.3/kwin/effects/coverswitch/coverswitch.h >--- a/kwin-4.7.3/kwin/effects/coverswitch/coverswitch.h 2011-11-03 23:29:48.321553301 -0400 >+++ b/kwin-4.7.3/kwin/effects/coverswitch/coverswitch.h 2011-11-03 23:29:58.229553850 -0400 >@@ -48,6 +48,7 @@ > virtual void postPaintScreen(); > virtual void paintWindow(EffectWindow* w, int mask, QRegion region, WindowPaintData& data); > virtual void windowInputMouseEvent(Window w, QEvent* e); >+ virtual bool isActive() const; > > static bool supported(); > >diff -uNr a/kwin-4.7.3/kwin/effects/cube/cube.cpp b/kwin-4.7.3/kwin/effects/cube/cube.cpp >--- a/kwin-4.7.3/kwin/effects/cube/cube.cpp 2011-11-03 23:29:48.322553301 -0400 >+++ b/kwin-4.7.3/kwin/effects/cube/cube.cpp 2011-11-03 23:29:58.230553850 -0400 >@@ -2064,4 +2064,9 @@ > m_cubeInsideEffects.removeAll(effect); > } > >+bool CubeEffect::isActive() const >+{ >+ return activated; >+} >+ > } // namespace >diff -uNr a/kwin-4.7.3/kwin/effects/cube/cube.h b/kwin-4.7.3/kwin/effects/cube/cube.h >--- a/kwin-4.7.3/kwin/effects/cube/cube.h 2011-11-03 23:29:48.322553301 -0400 >+++ b/kwin-4.7.3/kwin/effects/cube/cube.h 2011-11-03 23:29:58.230553850 -0400 >@@ -50,6 +50,7 @@ > virtual bool borderActivated(ElectricBorder border); > virtual void grabbedKeyboardEvent(QKeyEvent* e); > virtual void windowInputMouseEvent(Window w, QEvent* e); >+ virtual bool isActive() const; > > // proxy functions > virtual void* proxy(); >diff -uNr a/kwin-4.7.3/kwin/effects/cube/cubeslide.cpp b/kwin-4.7.3/kwin/effects/cube/cubeslide.cpp >--- a/kwin-4.7.3/kwin/effects/cube/cubeslide.cpp 2011-11-03 23:29:48.322553301 -0400 >+++ b/kwin-4.7.3/kwin/effects/cube/cubeslide.cpp 2011-11-03 23:29:58.230553850 -0400 >@@ -617,4 +617,9 @@ > effects->addRepaintFull(); > } > >+bool CubeSlideEffect::isActive() const >+{ >+ return !slideRotations.isEmpty(); >+} >+ > } // namespace >diff -uNr a/kwin-4.7.3/kwin/effects/cube/cubeslide.h b/kwin-4.7.3/kwin/effects/cube/cubeslide.h >--- a/kwin-4.7.3/kwin/effects/cube/cubeslide.h 2011-11-03 23:29:48.322553301 -0400 >+++ b/kwin-4.7.3/kwin/effects/cube/cubeslide.h 2011-11-03 23:29:58.231553850 -0400 >@@ -42,6 +42,7 @@ > virtual void postPaintScreen(); > virtual void prePaintWindow(EffectWindow* w, WindowPrePaintData& data, int time); > virtual void paintWindow(EffectWindow* w, int mask, QRegion region, WindowPaintData& data); >+ virtual bool isActive() const; > > static bool supported(); > >diff -uNr a/kwin-4.7.3/kwin/effects/dashboard/dashboard.cpp b/kwin-4.7.3/kwin/effects/dashboard/dashboard.cpp >--- a/kwin-4.7.3/kwin/effects/dashboard/dashboard.cpp 2011-11-03 23:29:48.322553301 -0400 >+++ b/kwin-4.7.3/kwin/effects/dashboard/dashboard.cpp 2011-11-03 23:29:58.231553850 -0400 >@@ -199,4 +199,9 @@ > } > } > >+bool DashboardEffect::isActive() const >+{ >+ return transformWindow; >+} >+ > } // namespace >diff -uNr a/kwin-4.7.3/kwin/effects/dashboard/dashboard.h b/kwin-4.7.3/kwin/effects/dashboard/dashboard.h >--- a/kwin-4.7.3/kwin/effects/dashboard/dashboard.h 2011-11-03 23:29:48.322553301 -0400 >+++ b/kwin-4.7.3/kwin/effects/dashboard/dashboard.h 2011-11-03 23:29:58.231553850 -0400 >@@ -43,6 +43,7 @@ > virtual void propagate(); > virtual void reconfigure(ReconfigureFlags); > virtual void unpropagate(); >+ virtual bool isActive() const; > > public Q_SLOTS: > void slotWindowAdded(EffectWindow* c); >diff -uNr a/kwin-4.7.3/kwin/effects/desktopgrid/desktopgrid.cpp b/kwin-4.7.3/kwin/effects/desktopgrid/desktopgrid.cpp >--- a/kwin-4.7.3/kwin/effects/desktopgrid/desktopgrid.cpp 2011-11-03 23:29:48.322553301 -0400 >+++ b/kwin-4.7.3/kwin/effects/desktopgrid/desktopgrid.cpp 2011-11-03 23:29:58.232553850 -0400 >@@ -1223,10 +1223,10 @@ > shortcut = KShortcut(seq); > } > >-bool DesktopGridEffect::isMotionManagerMovingWindows() >+bool DesktopGridEffect::isMotionManagerMovingWindows() const > { > if (isUsingPresentWindows()) { >- QList<WindowMotionManager>::iterator it; >+ QList<WindowMotionManager>::const_iterator it; > for (it = m_managers.begin(); it != m_managers.end(); ++it) { > if ((*it).areWindowsMoving()) > return true; >@@ -1374,6 +1374,11 @@ > effects->addRepaintFull(); > } > >+bool DesktopGridEffect::isActive() const >+{ >+ return timeline.currentValue() != 0 || (isUsingPresentWindows() && isMotionManagerMovingWindows()); >+} >+ > /************************************************ > * DesktopButtonView > ************************************************/ >diff -uNr a/kwin-4.7.3/kwin/effects/desktopgrid/desktopgrid.h b/kwin-4.7.3/kwin/effects/desktopgrid/desktopgrid.h >--- a/kwin-4.7.3/kwin/effects/desktopgrid/desktopgrid.h 2011-11-03 23:29:48.322553301 -0400 >+++ b/kwin-4.7.3/kwin/effects/desktopgrid/desktopgrid.h 2011-11-03 23:29:58.232553850 -0400 >@@ -75,6 +75,7 @@ > virtual void windowInputMouseEvent(Window w, QEvent* e); > virtual void grabbedKeyboardEvent(QKeyEvent* e); > virtual bool borderActivated(ElectricBorder border); >+ virtual bool isActive() const; > > enum { LayoutPager, LayoutAutomatic, LayoutCustom }; // Layout modes > >@@ -106,7 +107,7 @@ > void setup(); > void setupGrid(); > void finish(); >- bool isMotionManagerMovingWindows(); >+ bool isMotionManagerMovingWindows() const; > bool isUsingPresentWindows() const; > QRectF moveGeometryToDesktop(int desktop) const; > void desktopsAdded(int old); >diff -uNr a/kwin-4.7.3/kwin/effects/dialogparent/dialogparent.cpp b/kwin-4.7.3/kwin/effects/dialogparent/dialogparent.cpp >--- a/kwin-4.7.3/kwin/effects/dialogparent/dialogparent.cpp 2011-11-03 23:29:48.322553301 -0400 >+++ b/kwin-4.7.3/kwin/effects/dialogparent/dialogparent.cpp 2011-11-03 23:29:58.232553850 -0400 >@@ -95,4 +95,9 @@ > effectStrength.remove(w); > } > >+bool DialogParentEffect::isActive() const >+{ >+ return !effectStrength.isEmpty(); >+} >+ > } // namespace >diff -uNr a/kwin-4.7.3/kwin/effects/dialogparent/dialogparent.h b/kwin-4.7.3/kwin/effects/dialogparent/dialogparent.h >--- a/kwin-4.7.3/kwin/effects/dialogparent/dialogparent.h 2011-11-03 23:29:48.322553301 -0400 >+++ b/kwin-4.7.3/kwin/effects/dialogparent/dialogparent.h 2011-11-03 23:29:58.232553850 -0400 >@@ -46,6 +46,8 @@ > virtual void paintWindow(EffectWindow* w, int mask, QRegion region, WindowPaintData& data); > virtual void postPaintWindow(EffectWindow* w); > >+ virtual bool isActive() const; >+ > public Q_SLOTS: > void slotWindowClosed(EffectWindow *c); > void slotWindowActivated(EffectWindow *c); >diff -uNr a/kwin-4.7.3/kwin/effects/dimscreen/dimscreen.cpp b/kwin-4.7.3/kwin/effects/dimscreen/dimscreen.cpp >--- a/kwin-4.7.3/kwin/effects/dimscreen/dimscreen.cpp 2011-11-03 23:29:48.321553301 -0400 >+++ b/kwin-4.7.3/kwin/effects/dimscreen/dimscreen.cpp 2011-11-03 23:29:58.233553851 -0400 >@@ -108,4 +108,10 @@ > } > } > } >+ >+bool DimScreenEffect::isActive() const >+{ >+ return mActivated; >+} >+ > } // namespace >diff -uNr a/kwin-4.7.3/kwin/effects/dimscreen/dimscreen.h b/kwin-4.7.3/kwin/effects/dimscreen/dimscreen.h >--- a/kwin-4.7.3/kwin/effects/dimscreen/dimscreen.h 2011-11-03 23:29:48.321553301 -0400 >+++ b/kwin-4.7.3/kwin/effects/dimscreen/dimscreen.h 2011-11-03 23:29:58.233553851 -0400 >@@ -39,6 +39,7 @@ > virtual void prePaintScreen(ScreenPrePaintData& data, int time); > virtual void postPaintScreen(); > virtual void paintWindow(EffectWindow *w, int mask, QRegion region, WindowPaintData &data); >+ virtual bool isActive() const; > > public Q_SLOTS: > void slotWindowActivated(EffectWindow *w); >diff -uNr a/kwin-4.7.3/kwin/effects/explosion/explosion.cpp b/kwin-4.7.3/kwin/effects/explosion/explosion.cpp >--- a/kwin-4.7.3/kwin/effects/explosion/explosion.cpp 2011-11-03 23:29:48.318553299 -0400 >+++ b/kwin-4.7.3/kwin/effects/explosion/explosion.cpp 2011-11-03 23:29:58.233553851 -0400 >@@ -202,5 +202,10 @@ > mWindows.remove(c); > } > >+bool ExplosionEffect::isActive() const >+{ >+ return mActiveAnimations > 0; >+} >+ > } // namespace > >diff -uNr a/kwin-4.7.3/kwin/effects/explosion/explosion.h b/kwin-4.7.3/kwin/effects/explosion/explosion.h >--- a/kwin-4.7.3/kwin/effects/explosion/explosion.h 2011-11-03 23:29:48.318553299 -0400 >+++ b/kwin-4.7.3/kwin/effects/explosion/explosion.h 2011-11-03 23:29:58.233553851 -0400 >@@ -47,6 +47,7 @@ > virtual void prePaintWindow(EffectWindow* w, WindowPrePaintData& data, int time); > virtual void paintWindow(EffectWindow* w, int mask, QRegion region, WindowPaintData& data); > virtual void postPaintScreen(); >+ virtual bool isActive() const; > > static bool supported(); > >diff -uNr a/kwin-4.7.3/kwin/effects/fade/fade.cpp b/kwin-4.7.3/kwin/effects/fade/fade.cpp >--- a/kwin-4.7.3/kwin/effects/fade/fade.cpp 2011-11-03 23:29:48.321553301 -0400 >+++ b/kwin-4.7.3/kwin/effects/fade/fade.cpp 2011-11-03 23:29:58.233553851 -0400 >@@ -199,4 +199,9 @@ > return (!w->isDesktop() && !w->isUtility()); > } > >+bool FadeEffect::isActive() const >+{ >+ return !windows.isEmpty(); >+} >+ > } // namespace >diff -uNr a/kwin-4.7.3/kwin/effects/fade/fade.h b/kwin-4.7.3/kwin/effects/fade/fade.h >--- a/kwin-4.7.3/kwin/effects/fade/fade.h 2011-11-03 23:29:48.321553301 -0400 >+++ b/kwin-4.7.3/kwin/effects/fade/fade.h 2011-11-03 23:29:58.234553852 -0400 >@@ -36,6 +36,7 @@ > virtual void prePaintScreen(ScreenPrePaintData& data, int time); > virtual void prePaintWindow(EffectWindow* w, WindowPrePaintData& data, int time); > virtual void paintWindow(EffectWindow* w, int mask, QRegion region, WindowPaintData& data); >+ virtual bool isActive() const; > > // TODO react also on virtual desktop changes > >diff -uNr a/kwin-4.7.3/kwin/effects/fadedesktop/fadedesktop.cpp b/kwin-4.7.3/kwin/effects/fadedesktop/fadedesktop.cpp >--- a/kwin-4.7.3/kwin/effects/fadedesktop/fadedesktop.cpp 2011-11-03 23:29:48.323553301 -0400 >+++ b/kwin-4.7.3/kwin/effects/fadedesktop/fadedesktop.cpp 2011-11-03 23:29:58.234553852 -0400 >@@ -107,6 +107,11 @@ > effects->addRepaintFull(); > } > >+bool FadeDesktopEffect::isActive() const >+{ >+ return m_fading; >+} >+ > } // namespace > > #include "fadedesktop.moc" >diff -uNr a/kwin-4.7.3/kwin/effects/fadedesktop/fadedesktop.h b/kwin-4.7.3/kwin/effects/fadedesktop/fadedesktop.h >--- a/kwin-4.7.3/kwin/effects/fadedesktop/fadedesktop.h 2011-11-03 23:29:48.323553301 -0400 >+++ b/kwin-4.7.3/kwin/effects/fadedesktop/fadedesktop.h 2011-11-03 23:29:58.234553852 -0400 >@@ -39,6 +39,7 @@ > virtual void postPaintScreen(); > virtual void prePaintWindow(EffectWindow *w, WindowPrePaintData &data, int time); > virtual void paintWindow(EffectWindow *w, int mask, QRegion region, WindowPaintData &data); >+ virtual bool isActive() const; > > private Q_SLOTS: > void slotDesktopChanged(int old); >diff -uNr a/kwin-4.7.3/kwin/effects/fallapart/fallapart.cpp b/kwin-4.7.3/kwin/effects/fallapart/fallapart.cpp >--- a/kwin-4.7.3/kwin/effects/fallapart/fallapart.cpp 2011-11-03 23:29:48.319553300 -0400 >+++ b/kwin-4.7.3/kwin/effects/fallapart/fallapart.cpp 2011-11-03 23:29:58.234553852 -0400 >@@ -160,4 +160,9 @@ > windows.remove(c); > } > >+bool FallApartEffect::isActive() const >+{ >+ return !windows.isEmpty(); >+} >+ > } // namespace >diff -uNr a/kwin-4.7.3/kwin/effects/fallapart/fallapart.h b/kwin-4.7.3/kwin/effects/fallapart/fallapart.h >--- a/kwin-4.7.3/kwin/effects/fallapart/fallapart.h 2011-11-03 23:29:48.319553300 -0400 >+++ b/kwin-4.7.3/kwin/effects/fallapart/fallapart.h 2011-11-03 23:29:58.234553852 -0400 >@@ -37,6 +37,7 @@ > virtual void prePaintWindow(EffectWindow* w, WindowPrePaintData& data, int time); > virtual void paintWindow(EffectWindow* w, int mask, QRegion region, WindowPaintData& data); > virtual void postPaintScreen(); >+ virtual bool isActive() const; > > public Q_SLOTS: > void slotWindowClosed(EffectWindow *c); >diff -uNr a/kwin-4.7.3/kwin/effects/flipswitch/flipswitch.cpp b/kwin-4.7.3/kwin/effects/flipswitch/flipswitch.cpp >--- a/kwin-4.7.3/kwin/effects/flipswitch/flipswitch.cpp 2011-11-03 23:29:48.322553301 -0400 >+++ b/kwin-4.7.3/kwin/effects/flipswitch/flipswitch.cpp 2011-11-03 23:29:58.235553852 -0400 >@@ -934,6 +934,11 @@ > } > } > >+bool FlipSwitchEffect::isActive() const >+{ >+ return m_active; >+} >+ > //************************************************************* > // Item Info > //************************************************************* >diff -uNr a/kwin-4.7.3/kwin/effects/flipswitch/flipswitch.h b/kwin-4.7.3/kwin/effects/flipswitch/flipswitch.h >--- a/kwin-4.7.3/kwin/effects/flipswitch/flipswitch.h 2011-11-03 23:29:48.322553301 -0400 >+++ b/kwin-4.7.3/kwin/effects/flipswitch/flipswitch.h 2011-11-03 23:29:58.235553852 -0400 >@@ -47,6 +47,7 @@ > virtual void paintWindow(EffectWindow* w, int mask, QRegion region, WindowPaintData& data); > virtual bool borderActivated(ElectricBorder border); > virtual void grabbedKeyboardEvent(QKeyEvent* e); >+ virtual bool isActive() const; > > static bool supported(); > private Q_SLOTS: >diff -uNr a/kwin-4.7.3/kwin/effects/glide/glide.cpp b/kwin-4.7.3/kwin/effects/glide/glide.cpp >--- a/kwin-4.7.3/kwin/effects/glide/glide.cpp 2011-11-03 23:29:48.323553301 -0400 >+++ b/kwin-4.7.3/kwin/effects/glide/glide.cpp 2011-11-03 23:29:58.235553852 -0400 >@@ -226,6 +226,11 @@ > return true; > } > >+bool GlideEffect::isActive() const >+{ >+ return !windows.isEmpty(); >+} >+ > GlideEffect::WindowInfo::WindowInfo() > : deleted(false) > , added(false) >diff -uNr a/kwin-4.7.3/kwin/effects/glide/glide.h b/kwin-4.7.3/kwin/effects/glide/glide.h >--- a/kwin-4.7.3/kwin/effects/glide/glide.h 2011-11-03 23:29:48.323553301 -0400 >+++ b/kwin-4.7.3/kwin/effects/glide/glide.h 2011-11-03 23:29:58.235553852 -0400 >@@ -41,6 +41,7 @@ > virtual void prePaintWindow(EffectWindow* w, WindowPrePaintData& data, int time); > virtual void paintWindow(EffectWindow* w, int mask, QRegion region, WindowPaintData& data); > virtual void postPaintWindow(EffectWindow* w); >+ virtual bool isActive() const; > > static bool supported(); > public Q_SLOTS: >diff -uNr a/kwin-4.7.3/kwin/effects/highlightwindow/highlightwindow.cpp b/kwin-4.7.3/kwin/effects/highlightwindow/highlightwindow.cpp >--- a/kwin-4.7.3/kwin/effects/highlightwindow/highlightwindow.cpp 2011-11-03 23:29:48.319553300 -0400 >+++ b/kwin-4.7.3/kwin/effects/highlightwindow/highlightwindow.cpp 2011-11-03 23:29:58.236553852 -0400 >@@ -257,4 +257,9 @@ > m_windowOpacity.constBegin().key()->addRepaintFull(); > } > >+bool HighlightWindowEffect::isActive() const >+{ >+ return !m_windowOpacity.isEmpty(); >+} >+ > } // namespace >diff -uNr a/kwin-4.7.3/kwin/effects/highlightwindow/highlightwindow.h b/kwin-4.7.3/kwin/effects/highlightwindow/highlightwindow.h >--- a/kwin-4.7.3/kwin/effects/highlightwindow/highlightwindow.h 2011-11-03 23:29:48.319553300 -0400 >+++ b/kwin-4.7.3/kwin/effects/highlightwindow/highlightwindow.h 2011-11-03 23:29:58.236553852 -0400 >@@ -36,6 +36,7 @@ > > virtual void prePaintWindow(EffectWindow* w, WindowPrePaintData& data, int time); > virtual void paintWindow(EffectWindow* w, int mask, QRegion region, WindowPaintData& data); >+ virtual bool isActive() const; > > public Q_SLOTS: > void slotWindowAdded(EffectWindow* w); >diff -uNr a/kwin-4.7.3/kwin/effects/invert/invert.cpp b/kwin-4.7.3/kwin/effects/invert/invert.cpp >--- a/kwin-4.7.3/kwin/effects/invert/invert.cpp 2011-11-03 23:29:48.319553300 -0400 >+++ b/kwin-4.7.3/kwin/effects/invert/invert.cpp 2011-11-03 23:29:58.236553852 -0400 >@@ -161,6 +161,11 @@ > effects->activeWindow()->addRepaintFull(); > } > >+bool InvertEffect::isActive() const >+{ >+ return m_valid && (m_allWindows || !m_windows.isEmpty()); >+} >+ > } // namespace > > #include "invert.moc" >diff -uNr a/kwin-4.7.3/kwin/effects/invert/invert.h b/kwin-4.7.3/kwin/effects/invert/invert.h >--- a/kwin-4.7.3/kwin/effects/invert/invert.h 2011-11-03 23:29:48.319553300 -0400 >+++ b/kwin-4.7.3/kwin/effects/invert/invert.h 2011-11-03 23:29:58.236553852 -0400 >@@ -44,6 +44,7 @@ > virtual void prePaintScreen(ScreenPrePaintData &data, int time); > virtual void prePaintWindow(EffectWindow *w, WindowPrePaintData &data, int time); > virtual void paintEffectFrame(KWin::EffectFrame* frame, QRegion region, double opacity, double frameOpacity); >+ virtual bool isActive() const; > > static bool supported(); > >diff -uNr a/kwin-4.7.3/kwin/effects/login/login.cpp b/kwin-4.7.3/kwin/effects/login/login.cpp >--- a/kwin-4.7.3/kwin/effects/login/login.cpp 2011-11-03 23:29:48.319553300 -0400 >+++ b/kwin-4.7.3/kwin/effects/login/login.cpp 2011-11-03 23:29:58.236553852 -0400 >@@ -96,4 +96,9 @@ > return false; > } > >+bool LoginEffect::isActive() const >+{ >+ return login_window != NULL; >+} >+ > } // namespace >diff -uNr a/kwin-4.7.3/kwin/effects/login/login.h b/kwin-4.7.3/kwin/effects/login/login.h >--- a/kwin-4.7.3/kwin/effects/login/login.h 2011-11-03 23:29:48.319553300 -0400 >+++ b/kwin-4.7.3/kwin/effects/login/login.h 2011-11-03 23:29:58.237553852 -0400 >@@ -37,6 +37,7 @@ > virtual void postPaintScreen(); > virtual void prePaintWindow(EffectWindow* w, WindowPrePaintData& data, int time); > virtual void paintWindow(EffectWindow* w, int mask, QRegion region, WindowPaintData& data); >+ virtual bool isActive() const; > > public Q_SLOTS: > void slotWindowClosed(EffectWindow *w); >diff -uNr a/kwin-4.7.3/kwin/effects/logout/logout.cpp b/kwin-4.7.3/kwin/effects/logout/logout.cpp >--- a/kwin-4.7.3/kwin/effects/logout/logout.cpp 2011-11-03 23:29:48.320553301 -0400 >+++ b/kwin-4.7.3/kwin/effects/logout/logout.cpp 2011-11-03 23:29:58.237553852 -0400 >@@ -396,4 +396,9 @@ > canDoPersistent = true; > } > >+bool LogoutEffect::isActive() const >+{ >+ return progress != 0; >+} >+ > } // namespace >diff -uNr a/kwin-4.7.3/kwin/effects/logout/logout.h b/kwin-4.7.3/kwin/effects/logout/logout.h >--- a/kwin-4.7.3/kwin/effects/logout/logout.h 2011-11-03 23:29:48.320553301 -0400 >+++ b/kwin-4.7.3/kwin/effects/logout/logout.h 2011-11-03 23:29:58.237553852 -0400 >@@ -44,6 +44,7 @@ > virtual void paintScreen(int mask, QRegion region, ScreenPaintData& data); > virtual void postPaintScreen(); > virtual void paintWindow(EffectWindow* w, int mask, QRegion region, WindowPaintData& data); >+ virtual bool isActive() const; > public Q_SLOTS: > void slotWindowAdded(EffectWindow* w); > void slotWindowClosed(EffectWindow *w); >diff -uNr a/kwin-4.7.3/kwin/effects/lookingglass/lookingglass.cpp b/kwin-4.7.3/kwin/effects/lookingglass/lookingglass.cpp >--- a/kwin-4.7.3/kwin/effects/lookingglass/lookingglass.cpp 2011-11-03 23:29:48.321553301 -0400 >+++ b/kwin-4.7.3/kwin/effects/lookingglass/lookingglass.cpp 2011-11-03 23:29:58.237553852 -0400 >@@ -247,6 +247,11 @@ > } > } > >+bool LookingGlassEffect::isActive() const >+{ >+ return m_valid && m_enabled; >+} >+ > } // namespace > > #include "lookingglass.moc" >diff -uNr a/kwin-4.7.3/kwin/effects/lookingglass/lookingglass.h b/kwin-4.7.3/kwin/effects/lookingglass/lookingglass.h >--- a/kwin-4.7.3/kwin/effects/lookingglass/lookingglass.h 2011-11-03 23:29:48.321553301 -0400 >+++ b/kwin-4.7.3/kwin/effects/lookingglass/lookingglass.h 2011-11-03 23:29:58.237553852 -0400 >@@ -48,6 +48,7 @@ > > virtual void prePaintScreen(ScreenPrePaintData& data, int time); > virtual void postPaintScreen(); >+ virtual bool isActive() const; > > static bool supported(); > >diff -uNr a/kwin-4.7.3/kwin/effects/magiclamp/magiclamp.cpp b/kwin-4.7.3/kwin/effects/magiclamp/magiclamp.cpp >--- a/kwin-4.7.3/kwin/effects/magiclamp/magiclamp.cpp 2011-11-03 23:29:48.319553300 -0400 >+++ b/kwin-4.7.3/kwin/effects/magiclamp/magiclamp.cpp 2011-11-03 23:29:58.238553852 -0400 >@@ -353,4 +353,9 @@ > mTimeLineWindows[w]->setCurrentTime(mAnimationDuration); > } > >+bool MagicLampEffect::isActive() const >+{ >+ return !mTimeLineWindows.isEmpty(); >+} >+ > } // namespace >diff -uNr a/kwin-4.7.3/kwin/effects/magiclamp/magiclamp.h b/kwin-4.7.3/kwin/effects/magiclamp/magiclamp.h >--- a/kwin-4.7.3/kwin/effects/magiclamp/magiclamp.h 2011-11-03 23:29:48.319553300 -0400 >+++ b/kwin-4.7.3/kwin/effects/magiclamp/magiclamp.h 2011-11-03 23:29:58.238553852 -0400 >@@ -40,6 +40,7 @@ > virtual void prePaintWindow(EffectWindow* w, WindowPrePaintData& data, int time); > virtual void paintWindow(EffectWindow* w, int mask, QRegion region, WindowPaintData& data); > virtual void postPaintScreen(); >+ virtual bool isActive() const; > > static bool supported(); > >diff -uNr a/kwin-4.7.3/kwin/effects/magnifier/magnifier.cpp b/kwin-4.7.3/kwin/effects/magnifier/magnifier.cpp >--- a/kwin-4.7.3/kwin/effects/magnifier/magnifier.cpp 2011-11-03 23:29:48.319553300 -0400 >+++ b/kwin-4.7.3/kwin/effects/magnifier/magnifier.cpp 2011-11-03 23:29:58.238553852 -0400 >@@ -209,6 +209,11 @@ > effects->addRepaintFull(); > } > >+bool MagnifierEffect::isActive() const >+{ >+ return zoom != 1.0 || zoom != target_zoom; >+} >+ > } // namespace > > #include "magnifier.moc" >diff -uNr a/kwin-4.7.3/kwin/effects/magnifier/magnifier.h b/kwin-4.7.3/kwin/effects/magnifier/magnifier.h >--- a/kwin-4.7.3/kwin/effects/magnifier/magnifier.h 2011-11-03 23:29:48.319553300 -0400 >+++ b/kwin-4.7.3/kwin/effects/magnifier/magnifier.h 2011-11-03 23:29:58.238553852 -0400 >@@ -36,6 +36,7 @@ > virtual void prePaintScreen(ScreenPrePaintData& data, int time); > virtual void paintScreen(int mask, QRegion region, ScreenPaintData& data); > virtual void postPaintScreen(); >+ virtual bool isActive() const; > static bool supported(); > private slots: > void zoomIn(); >diff -uNr a/kwin-4.7.3/kwin/effects/minimizeanimation/minimizeanimation.cpp b/kwin-4.7.3/kwin/effects/minimizeanimation/minimizeanimation.cpp >--- a/kwin-4.7.3/kwin/effects/minimizeanimation/minimizeanimation.cpp 2011-11-03 23:29:48.319553300 -0400 >+++ b/kwin-4.7.3/kwin/effects/minimizeanimation/minimizeanimation.cpp 2011-11-03 23:29:58.238553852 -0400 >@@ -148,5 +148,10 @@ > timeline->setCurrentTime(timeline->duration()); > } > >+bool MinimizeAnimationEffect::isActive() const >+{ >+ return !mTimeLineWindows.isEmpty(); >+} >+ > } // namespace > >diff -uNr a/kwin-4.7.3/kwin/effects/minimizeanimation/minimizeanimation.h b/kwin-4.7.3/kwin/effects/minimizeanimation/minimizeanimation.h >--- a/kwin-4.7.3/kwin/effects/minimizeanimation/minimizeanimation.h 2011-11-03 23:29:48.319553300 -0400 >+++ b/kwin-4.7.3/kwin/effects/minimizeanimation/minimizeanimation.h 2011-11-03 23:29:58.239553852 -0400 >@@ -43,6 +43,7 @@ > virtual void prePaintWindow(EffectWindow* w, WindowPrePaintData& data, int time); > virtual void paintWindow(EffectWindow* w, int mask, QRegion region, WindowPaintData& data); > virtual void postPaintScreen(); >+ virtual bool isActive() const; > > public Q_SLOTS: > void slotWindowDeleted(EffectWindow *w); >diff -uNr a/kwin-4.7.3/kwin/effects/mousemark/mousemark.cpp b/kwin-4.7.3/kwin/effects/mousemark/mousemark.cpp >--- a/kwin-4.7.3/kwin/effects/mousemark/mousemark.cpp 2011-11-03 23:29:48.319553300 -0400 >+++ b/kwin-4.7.3/kwin/effects/mousemark/mousemark.cpp 2011-11-03 23:29:58.239553852 -0400 >@@ -186,6 +186,12 @@ > return ret; > } > >+bool MouseMarkEffect::isActive() const >+{ >+ return !marks.isEmpty() || !drawing.isEmpty(); >+} >+ >+ > } // namespace > > #include "mousemark.moc" >diff -uNr a/kwin-4.7.3/kwin/effects/mousemark/mousemark.h b/kwin-4.7.3/kwin/effects/mousemark/mousemark.h >--- a/kwin-4.7.3/kwin/effects/mousemark/mousemark.h 2011-11-03 23:29:48.319553300 -0400 >+++ b/kwin-4.7.3/kwin/effects/mousemark/mousemark.h 2011-11-03 23:29:58.239553852 -0400 >@@ -36,6 +36,7 @@ > ~MouseMarkEffect(); > virtual void reconfigure(ReconfigureFlags); > virtual void paintScreen(int mask, QRegion region, ScreenPaintData& data); >+ virtual bool isActive() const; > private slots: > void clear(); > void clearLast(); >diff -uNr a/kwin-4.7.3/kwin/effects/outline/outline.cpp b/kwin-4.7.3/kwin/effects/outline/outline.cpp >--- a/kwin-4.7.3/kwin/effects/outline/outline.cpp 2011-11-03 23:29:48.321553301 -0400 >+++ b/kwin-4.7.3/kwin/effects/outline/outline.cpp 2011-11-03 23:29:58.239553852 -0400 >@@ -75,4 +75,9 @@ > effects->addRepaint(geometry); > } > >+bool OutlineEffect::isActive() const >+{ >+ return m_active; >+} >+ > } // namespace >diff -uNr a/kwin-4.7.3/kwin/effects/outline/outline.h b/kwin-4.7.3/kwin/effects/outline/outline.h >--- a/kwin-4.7.3/kwin/effects/outline/outline.h 2011-11-03 23:29:48.321553301 -0400 >+++ b/kwin-4.7.3/kwin/effects/outline/outline.h 2011-11-03 23:29:58.239553852 -0400 >@@ -35,6 +35,7 @@ > > virtual void paintScreen(int mask, QRegion region, ScreenPaintData& data); > virtual bool provides(Feature feature); >+ virtual bool isActive() const; > > public Q_SLOTS: > void slotShowOutline(const QRect &geometry); >diff -uNr a/kwin-4.7.3/kwin/effects/presentwindows/presentwindows.cpp b/kwin-4.7.3/kwin/effects/presentwindows/presentwindows.cpp >--- a/kwin-4.7.3/kwin/effects/presentwindows/presentwindows.cpp 2011-11-03 23:29:48.321553301 -0400 >+++ b/kwin-4.7.3/kwin/effects/presentwindows/presentwindows.cpp 2011-11-03 23:29:58.240553852 -0400 >@@ -1967,6 +1967,11 @@ > shortcutClass = KShortcut(seq); > } > >+bool PresentWindowsEffect::isActive() const >+{ >+ return m_activated || m_motionManager.managingWindows(); >+} >+ > /************************************************ > * CloseWindowView > ************************************************/ >diff -uNr a/kwin-4.7.3/kwin/effects/presentwindows/presentwindows.h b/kwin-4.7.3/kwin/effects/presentwindows/presentwindows.h >--- a/kwin-4.7.3/kwin/effects/presentwindows/presentwindows.h 2011-11-03 23:29:48.321553301 -0400 >+++ b/kwin-4.7.3/kwin/effects/presentwindows/presentwindows.h 2011-11-03 23:29:58.240553852 -0400 >@@ -103,6 +103,7 @@ > virtual bool borderActivated(ElectricBorder border); > virtual void windowInputMouseEvent(Window w, QEvent *e); > virtual void grabbedKeyboardEvent(QKeyEvent *e); >+ virtual bool isActive() const; > > enum { LayoutNatural, LayoutRegularGrid, LayoutFlexibleGrid }; // Layout modes > enum PresentWindowsMode { >diff -uNr a/kwin-4.7.3/kwin/effects/scalein/scalein.cpp b/kwin-4.7.3/kwin/effects/scalein/scalein.cpp >--- a/kwin-4.7.3/kwin/effects/scalein/scalein.cpp 2011-11-03 23:29:48.322553301 -0400 >+++ b/kwin-4.7.3/kwin/effects/scalein/scalein.cpp 2011-11-03 23:29:58.241553852 -0400 >@@ -95,4 +95,9 @@ > delete mTimeLineWindows.take(c); > } > >+bool ScaleInEffect::isActive() const >+{ >+ return !mTimeLineWindows.isEmpty(); >+} >+ > } // namespace >diff -uNr a/kwin-4.7.3/kwin/effects/scalein/scalein.h b/kwin-4.7.3/kwin/effects/scalein/scalein.h >--- a/kwin-4.7.3/kwin/effects/scalein/scalein.h 2011-11-03 23:29:48.322553301 -0400 >+++ b/kwin-4.7.3/kwin/effects/scalein/scalein.h 2011-11-03 23:29:58.241553852 -0400 >@@ -38,6 +38,7 @@ > virtual void prePaintWindow(EffectWindow* w, WindowPrePaintData& data, int time); > virtual void paintWindow(EffectWindow* w, int mask, QRegion region, WindowPaintData& data); > virtual void postPaintWindow(EffectWindow* w); >+ virtual bool isActive() const; > // TODO react also on virtual desktop changes > public Q_SLOTS: > void slotWindowAdded(EffectWindow* c); >diff -uNr a/kwin-4.7.3/kwin/effects/screenshot/screenshot.cpp b/kwin-4.7.3/kwin/effects/screenshot/screenshot.cpp >--- a/kwin-4.7.3/kwin/effects/screenshot/screenshot.cpp 2011-11-03 23:29:48.320553301 -0400 >+++ b/kwin-4.7.3/kwin/effects/screenshot/screenshot.cpp 2011-11-03 23:29:58.241553852 -0400 >@@ -200,4 +200,9 @@ > img = img.mirrored(); > } > >+bool ScreenShotEffect::isActive() const >+{ >+ return m_scheduledScreenshot != NULL; >+} >+ > } // namespace >diff -uNr a/kwin-4.7.3/kwin/effects/screenshot/screenshot.h b/kwin-4.7.3/kwin/effects/screenshot/screenshot.h >--- a/kwin-4.7.3/kwin/effects/screenshot/screenshot.h 2011-11-03 23:29:48.320553301 -0400 >+++ b/kwin-4.7.3/kwin/effects/screenshot/screenshot.h 2011-11-03 23:29:58.241553852 -0400 >@@ -40,6 +40,7 @@ > ScreenShotEffect(); > virtual ~ScreenShotEffect(); > virtual void postPaintScreen(); >+ virtual bool isActive() const; > > static bool supported(); > static void convertFromGLImage(QImage &img, int w, int h); >diff -uNr a/kwin-4.7.3/kwin/effects/sheet/sheet.cpp b/kwin-4.7.3/kwin/effects/sheet/sheet.cpp >--- a/kwin-4.7.3/kwin/effects/sheet/sheet.cpp 2011-11-03 23:29:48.322553301 -0400 >+++ b/kwin-4.7.3/kwin/effects/sheet/sheet.cpp 2011-11-03 23:29:58.241553852 -0400 >@@ -186,6 +186,11 @@ > return (w->isModal() || w->data(IsSheetWindow).toBool()); > } > >+bool SheetEffect::isActive() const >+{ >+ return !windows.isEmpty(); >+} >+ > SheetEffect::WindowInfo::WindowInfo() > : deleted(false) > , added(false) >diff -uNr a/kwin-4.7.3/kwin/effects/sheet/sheet.h b/kwin-4.7.3/kwin/effects/sheet/sheet.h >--- a/kwin-4.7.3/kwin/effects/sheet/sheet.h 2011-11-03 23:29:48.322553301 -0400 >+++ b/kwin-4.7.3/kwin/effects/sheet/sheet.h 2011-11-03 23:29:58.242553852 -0400 >@@ -40,6 +40,7 @@ > virtual void prePaintWindow(EffectWindow* w, WindowPrePaintData& data, int time); > virtual void paintWindow(EffectWindow* w, int mask, QRegion region, WindowPaintData& data); > virtual void postPaintWindow(EffectWindow* w); >+ virtual bool isActive() const; > > static bool supported(); > >diff -uNr a/kwin-4.7.3/kwin/effects/slide/slide.cpp b/kwin-4.7.3/kwin/effects/slide/slide.cpp >--- a/kwin-4.7.3/kwin/effects/slide/slide.cpp 2011-11-03 23:29:48.321553301 -0400 >+++ b/kwin-4.7.3/kwin/effects/slide/slide.cpp 2011-11-03 23:29:58.242553852 -0400 >@@ -227,6 +227,11 @@ > effects->addRepaintFull(); > } > >+bool SlideEffect::isActive() const >+{ >+ return slide; >+} >+ > } // namespace > > #include "slide.moc" >diff -uNr a/kwin-4.7.3/kwin/effects/slide/slide.h b/kwin-4.7.3/kwin/effects/slide/slide.h >--- a/kwin-4.7.3/kwin/effects/slide/slide.h 2011-11-03 23:29:48.321553301 -0400 >+++ b/kwin-4.7.3/kwin/effects/slide/slide.h 2011-11-03 23:29:58.242553852 -0400 >@@ -41,6 +41,7 @@ > virtual void postPaintScreen(); > virtual void prePaintWindow(EffectWindow* w, WindowPrePaintData& data, int time); > virtual void paintWindow(EffectWindow* w, int mask, QRegion region, WindowPaintData& data); >+ virtual bool isActive() const; > > private Q_SLOTS: > void slotDesktopChanged(int old, int current); >diff -uNr a/kwin-4.7.3/kwin/effects/slideback/slideback.cpp b/kwin-4.7.3/kwin/effects/slideback/slideback.cpp >--- a/kwin-4.7.3/kwin/effects/slideback/slideback.cpp 2011-11-03 23:29:48.320553301 -0400 >+++ b/kwin-4.7.3/kwin/effects/slideback/slideback.cpp 2011-11-03 23:29:58.242553852 -0400 >@@ -373,4 +373,9 @@ > return modalGroupGeometry; > } > >+bool SlideBackEffect::isActive() const >+{ >+ return motionManager.managingWindows(); >+} >+ > } //Namespace >diff -uNr a/kwin-4.7.3/kwin/effects/slideback/slideback.h b/kwin-4.7.3/kwin/effects/slideback/slideback.h >--- a/kwin-4.7.3/kwin/effects/slideback/slideback.h 2011-11-03 23:29:48.320553301 -0400 >+++ b/kwin-4.7.3/kwin/effects/slideback/slideback.h 2011-11-03 23:29:58.242553852 -0400 >@@ -40,6 +40,7 @@ > > virtual void prePaintScreen(ScreenPrePaintData &data, int time); > virtual void postPaintScreen(); >+ virtual bool isActive() const; > > public Q_SLOTS: > void slotWindowAdded(EffectWindow *w); >diff -uNr a/kwin-4.7.3/kwin/effects/slidingpopups/slidingpopups.cpp b/kwin-4.7.3/kwin/effects/slidingpopups/slidingpopups.cpp >--- a/kwin-4.7.3/kwin/effects/slidingpopups/slidingpopups.cpp 2011-11-03 23:29:48.320553301 -0400 >+++ b/kwin-4.7.3/kwin/effects/slidingpopups/slidingpopups.cpp 2011-11-03 23:29:58.243553852 -0400 >@@ -243,4 +243,10 @@ > } > mWindowsData[ w ] = animData; > } >+ >+bool SlidingPopupsEffect::isActive() const >+{ >+ return !mAppearingWindows.isEmpty() || !mDisappearingWindows.isEmpty(); >+} >+ > } // namespace >diff -uNr a/kwin-4.7.3/kwin/effects/slidingpopups/slidingpopups.h b/kwin-4.7.3/kwin/effects/slidingpopups/slidingpopups.h >--- a/kwin-4.7.3/kwin/effects/slidingpopups/slidingpopups.h 2011-11-03 23:29:48.320553301 -0400 >+++ b/kwin-4.7.3/kwin/effects/slidingpopups/slidingpopups.h 2011-11-03 23:29:58.243553852 -0400 >@@ -41,6 +41,7 @@ > virtual void paintWindow(EffectWindow* w, int mask, QRegion region, WindowPaintData& data); > virtual void postPaintWindow(EffectWindow* w); > virtual void reconfigure(ReconfigureFlags flags); >+ virtual bool isActive() const; > // TODO react also on virtual desktop changes > > public Q_SLOTS: >diff -uNr a/kwin-4.7.3/kwin/effects/snaphelper/snaphelper.cpp b/kwin-4.7.3/kwin/effects/snaphelper/snaphelper.cpp >--- a/kwin-4.7.3/kwin/effects/snaphelper/snaphelper.cpp 2011-11-03 23:29:48.321553301 -0400 >+++ b/kwin-4.7.3/kwin/effects/snaphelper/snaphelper.cpp 2011-11-03 23:29:58.243553852 -0400 >@@ -216,4 +216,9 @@ > } > } > >+bool SnapHelperEffect::isActive() const >+{ >+ return m_timeline.currentValue() != 0.0; >+} >+ > } // namespace >diff -uNr a/kwin-4.7.3/kwin/effects/snaphelper/snaphelper.h b/kwin-4.7.3/kwin/effects/snaphelper/snaphelper.h >--- a/kwin-4.7.3/kwin/effects/snaphelper/snaphelper.h 2011-11-03 23:29:48.321553301 -0400 >+++ b/kwin-4.7.3/kwin/effects/snaphelper/snaphelper.h 2011-11-03 23:29:58.243553852 -0400 >@@ -39,6 +39,7 @@ > > virtual void prePaintScreen(ScreenPrePaintData &data, int time); > virtual void postPaintScreen(); >+ virtual bool isActive() const; > > static bool supported(); > >diff -uNr a/kwin-4.7.3/kwin/effects/startupfeedback/startupfeedback.cpp b/kwin-4.7.3/kwin/effects/startupfeedback/startupfeedback.cpp >--- a/kwin-4.7.3/kwin/effects/startupfeedback/startupfeedback.cpp 2011-11-03 23:29:48.321553301 -0400 >+++ b/kwin-4.7.3/kwin/effects/startupfeedback/startupfeedback.cpp 2011-11-03 23:29:58.244553852 -0400 >@@ -417,4 +417,9 @@ > return rect; > } > >+bool StartupFeedbackEffect::isActive() const >+{ >+ return m_active; >+} >+ > } // namespace >diff -uNr a/kwin-4.7.3/kwin/effects/startupfeedback/startupfeedback.h b/kwin-4.7.3/kwin/effects/startupfeedback/startupfeedback.h >--- a/kwin-4.7.3/kwin/effects/startupfeedback/startupfeedback.h 2011-11-03 23:29:48.321553301 -0400 >+++ b/kwin-4.7.3/kwin/effects/startupfeedback/startupfeedback.h 2011-11-03 23:29:58.244553852 -0400 >@@ -41,6 +41,7 @@ > virtual void prePaintScreen(ScreenPrePaintData& data, int time); > virtual void paintScreen(int mask, QRegion region, ScreenPaintData& data); > virtual void postPaintScreen(); >+ virtual bool isActive() const; > > static bool supported(); > >diff -uNr a/kwin-4.7.3/kwin/effects/taskbarthumbnail/taskbarthumbnail.cpp b/kwin-4.7.3/kwin/effects/taskbarthumbnail/taskbarthumbnail.cpp >--- a/kwin-4.7.3/kwin/effects/taskbarthumbnail/taskbarthumbnail.cpp 2011-11-03 23:29:48.318553299 -0400 >+++ b/kwin-4.7.3/kwin/effects/taskbarthumbnail/taskbarthumbnail.cpp 2011-11-03 23:29:58.244553852 -0400 >@@ -161,4 +161,9 @@ > } > } > >+bool TaskbarThumbnailEffect::isActive() const >+{ >+ return !thumbnails.isEmpty(); >+} >+ > } // namespace >diff -uNr a/kwin-4.7.3/kwin/effects/taskbarthumbnail/taskbarthumbnail.h b/kwin-4.7.3/kwin/effects/taskbarthumbnail/taskbarthumbnail.h >--- a/kwin-4.7.3/kwin/effects/taskbarthumbnail/taskbarthumbnail.h 2011-11-03 23:29:48.318553299 -0400 >+++ b/kwin-4.7.3/kwin/effects/taskbarthumbnail/taskbarthumbnail.h 2011-11-03 23:29:58.244553852 -0400 >@@ -38,6 +38,7 @@ > virtual void prePaintScreen(ScreenPrePaintData& data, int time); > virtual void prePaintWindow(EffectWindow* w, WindowPrePaintData& data, int time); > virtual void paintWindow(EffectWindow* w, int mask, QRegion region, WindowPaintData& data); >+ virtual bool isActive() const; > > public Q_SLOTS: > void slotWindowAdded(EffectWindow *w); >diff -uNr a/kwin-4.7.3/kwin/effects/thumbnailaside/thumbnailaside.cpp b/kwin-4.7.3/kwin/effects/thumbnailaside/thumbnailaside.cpp >--- a/kwin-4.7.3/kwin/effects/thumbnailaside/thumbnailaside.cpp 2011-11-03 23:29:48.323553301 -0400 >+++ b/kwin-4.7.3/kwin/effects/thumbnailaside/thumbnailaside.cpp 2011-11-03 23:29:58.244553852 -0400 >@@ -172,6 +172,11 @@ > effects->addRepaint(d.rect); > } > >+bool ThumbnailAsideEffect::isActive() const >+{ >+ return !windows.isEmpty(); >+} >+ > } // namespace > > #include "thumbnailaside.moc" >diff -uNr a/kwin-4.7.3/kwin/effects/thumbnailaside/thumbnailaside.h b/kwin-4.7.3/kwin/effects/thumbnailaside/thumbnailaside.h >--- a/kwin-4.7.3/kwin/effects/thumbnailaside/thumbnailaside.h 2011-11-03 23:29:48.323553301 -0400 >+++ b/kwin-4.7.3/kwin/effects/thumbnailaside/thumbnailaside.h 2011-11-03 23:29:58.245553852 -0400 >@@ -48,6 +48,7 @@ > void slotWindowClosed(EffectWindow *w); > void slotWindowGeometryShapeChanged(EffectWindow *w, const QRect &old); > void slotWindowDamaged(EffectWindow* w, const QRect& damage); >+ virtual bool isActive() const; > private: > void addThumbnail(EffectWindow* w); > void removeThumbnail(EffectWindow* w); >diff -uNr a/kwin-4.7.3/kwin/effects/trackmouse/trackmouse.cpp b/kwin-4.7.3/kwin/effects/trackmouse/trackmouse.cpp >--- a/kwin-4.7.3/kwin/effects/trackmouse/trackmouse.cpp 2011-11-03 23:29:48.318553299 -0400 >+++ b/kwin-4.7.3/kwin/effects/trackmouse/trackmouse.cpp 2011-11-03 23:29:58.245553852 -0400 >@@ -213,4 +213,9 @@ > #endif > } > >+bool TrackMouseEffect::isActive() const >+{ >+ return active; >+} >+ > } // namespace >diff -uNr a/kwin-4.7.3/kwin/effects/trackmouse/trackmouse.h b/kwin-4.7.3/kwin/effects/trackmouse/trackmouse.h >--- a/kwin-4.7.3/kwin/effects/trackmouse/trackmouse.h 2011-11-03 23:29:48.318553299 -0400 >+++ b/kwin-4.7.3/kwin/effects/trackmouse/trackmouse.h 2011-11-03 23:29:58.245553852 -0400 >@@ -41,6 +41,7 @@ > virtual void paintScreen(int mask, QRegion region, ScreenPaintData& data); > virtual void postPaintScreen(); > virtual void reconfigure(ReconfigureFlags); >+ virtual bool isActive() const; > private slots: > void toggle(); > void slotMouseChanged(const QPoint& pos, const QPoint& old, >diff -uNr a/kwin-4.7.3/kwin/effects/windowgeometry/windowgeometry.cpp b/kwin-4.7.3/kwin/effects/windowgeometry/windowgeometry.cpp >--- a/kwin-4.7.3/kwin/effects/windowgeometry/windowgeometry.cpp 2011-11-03 23:29:48.320553301 -0400 >+++ b/kwin-4.7.3/kwin/effects/windowgeometry/windowgeometry.cpp 2011-11-03 23:29:58.245553852 -0400 >@@ -178,3 +178,7 @@ > } > } > >+bool WindowGeometry::isActive() const >+{ >+ return iAmActive; >+} >diff -uNr a/kwin-4.7.3/kwin/effects/windowgeometry/windowgeometry.h b/kwin-4.7.3/kwin/effects/windowgeometry/windowgeometry.h >--- a/kwin-4.7.3/kwin/effects/windowgeometry/windowgeometry.h 2011-11-03 23:29:48.320553301 -0400 >+++ b/kwin-4.7.3/kwin/effects/windowgeometry/windowgeometry.h 2011-11-03 23:29:58.245553852 -0400 >@@ -38,6 +38,7 @@ > } > void reconfigure(ReconfigureFlags); > void paintScreen(int mask, QRegion region, ScreenPaintData &data); >+ virtual bool isActive() const; > > private slots: > void toggle(); >diff -uNr a/kwin-4.7.3/kwin/effects/wobblywindows/wobblywindows.cpp b/kwin-4.7.3/kwin/effects/wobblywindows/wobblywindows.cpp >--- a/kwin-4.7.3/kwin/effects/wobblywindows/wobblywindows.cpp 2011-11-03 23:29:48.323553301 -0400 >+++ b/kwin-4.7.3/kwin/effects/wobblywindows/wobblywindows.cpp 2011-11-03 23:29:58.246553852 -0400 >@@ -1218,6 +1218,10 @@ > wwi.buffer = tmp; > } > >+bool WobblyWindowsEffect::isActive() const >+{ >+ return !windows.isEmpty(); >+} > > } // namespace KWin > >diff -uNr a/kwin-4.7.3/kwin/effects/wobblywindows/wobblywindows.h b/kwin-4.7.3/kwin/effects/wobblywindows/wobblywindows.h >--- a/kwin-4.7.3/kwin/effects/wobblywindows/wobblywindows.h 2011-11-03 23:29:48.323553301 -0400 >+++ b/kwin-4.7.3/kwin/effects/wobblywindows/wobblywindows.h 2011-11-03 23:29:58.246553852 -0400 >@@ -35,6 +35,7 @@ > virtual void prePaintWindow(EffectWindow* w, WindowPrePaintData& data, int time); > virtual void paintWindow(EffectWindow* w, int mask, QRegion region, WindowPaintData& data); > virtual void postPaintScreen(); >+ virtual bool isActive() const; > > // Wobbly model parameters > void setStiffness(qreal stiffness); >diff -uNr a/kwin-4.7.3/kwin/effects/zoom/zoom.cpp b/kwin-4.7.3/kwin/effects/zoom/zoom.cpp >--- a/kwin-4.7.3/kwin/effects/zoom/zoom.cpp 2011-11-03 23:29:48.321553301 -0400 >+++ b/kwin-4.7.3/kwin/effects/zoom/zoom.cpp 2011-11-03 23:29:58.246553852 -0400 >@@ -496,6 +496,11 @@ > } > } > >+bool ZoomEffect::isActive() const >+{ >+ return zoom != 1.0 || zoom != target_zoom; >+} >+ > } // namespace > > #include "zoom.moc" >diff -uNr a/kwin-4.7.3/kwin/effects/zoom/zoom.h b/kwin-4.7.3/kwin/effects/zoom/zoom.h >--- a/kwin-4.7.3/kwin/effects/zoom/zoom.h 2011-11-03 23:29:48.321553301 -0400 >+++ b/kwin-4.7.3/kwin/effects/zoom/zoom.h 2011-11-03 23:29:58.247553852 -0400 >@@ -43,6 +43,7 @@ > virtual void prePaintScreen(ScreenPrePaintData& data, int time); > virtual void paintScreen(int mask, QRegion region, ScreenPaintData& data); > virtual void postPaintScreen(); >+ virtual bool isActive() const; > private slots: > void zoomIn(); > void zoomOut(); >diff -uNr a/kwin-4.7.3/kwin/effects.cpp b/kwin-4.7.3/kwin/effects.cpp >--- a/kwin-4.7.3/kwin/effects.cpp 2011-11-03 23:29:48.323553301 -0400 >+++ b/kwin-4.7.3/kwin/effects.cpp 2011-11-03 23:29:58.247553852 -0400 >@@ -95,7 +95,6 @@ > , fullscreen_effect(0) > , next_window_quad_type(EFFECT_QUAD_TYPE_START) > , mouse_poll_ref_count(0) >- , current_paint_effectframe(0) > { > Workspace *ws = Workspace::self(); > connect(ws, SIGNAL(currentDesktopChanged(int)), this, SLOT(slotDesktopChanged(int))); >@@ -199,54 +198,54 @@ > // the idea is that effects call this function again which calls the next one > void EffectsHandlerImpl::prePaintScreen(ScreenPrePaintData& data, int time) > { >- if (current_paint_screen < loaded_effects.size()) { >- loaded_effects.at(current_paint_screen++).second->prePaintScreen(data, time); >- --current_paint_screen; >+ if (m_currentPaintScreenIterator != m_activeEffects.end()) { >+ (*m_currentPaintScreenIterator++)->prePaintScreen(data, time); >+ --m_currentPaintScreenIterator; > } > // no special final code > } > > void EffectsHandlerImpl::paintScreen(int mask, QRegion region, ScreenPaintData& data) > { >- if (current_paint_screen < loaded_effects.size()) { >- loaded_effects.at(current_paint_screen++).second->paintScreen(mask, region, data); >- --current_paint_screen; >+ if (m_currentPaintScreenIterator != m_activeEffects.end()) { >+ (*m_currentPaintScreenIterator++)->paintScreen(mask, region, data); >+ --m_currentPaintScreenIterator; > } else > scene->finalPaintScreen(mask, region, data); > } > > void EffectsHandlerImpl::postPaintScreen() > { >- if (current_paint_screen < loaded_effects.size()) { >- loaded_effects.at(current_paint_screen++).second->postPaintScreen(); >- --current_paint_screen; >+ if (m_currentPaintScreenIterator != m_activeEffects.end()) { >+ (*m_currentPaintScreenIterator++)->postPaintScreen(); >+ --m_currentPaintScreenIterator; > } > // no special final code > } > > void EffectsHandlerImpl::prePaintWindow(EffectWindow* w, WindowPrePaintData& data, int time) > { >- if (current_paint_window < loaded_effects.size()) { >- loaded_effects.at(current_paint_window++).second->prePaintWindow(w, data, time); >- --current_paint_window; >+ if (m_currentPaintWindowIterator != m_activeEffects.end()) { >+ (*m_currentPaintWindowIterator++)->prePaintWindow(w, data, time); >+ --m_currentPaintWindowIterator; > } > // no special final code > } > > void EffectsHandlerImpl::paintWindow(EffectWindow* w, int mask, QRegion region, WindowPaintData& data) > { >- if (current_paint_window < loaded_effects.size()) { >- loaded_effects.at(current_paint_window++).second->paintWindow(w, mask, region, data); >- --current_paint_window; >+ if (m_currentPaintWindowIterator != m_activeEffects.end()) { >+ (*m_currentPaintWindowIterator++)->paintWindow(w, mask, region, data); >+ --m_currentPaintWindowIterator; > } else > scene->finalPaintWindow(static_cast<EffectWindowImpl*>(w), mask, region, data); > } > > void EffectsHandlerImpl::paintEffectFrame(EffectFrame* frame, QRegion region, double opacity, double frameOpacity) > { >- if (current_paint_effectframe < loaded_effects.size()) { >- loaded_effects.at(current_paint_effectframe++).second->paintEffectFrame(frame, region, opacity, frameOpacity); >- --current_paint_effectframe; >+ if (m_currentPaintEffectFrameIterator != m_activeEffects.end()) { >+ (*m_currentPaintEffectFrameIterator++)->paintEffectFrame(frame, region, opacity, frameOpacity); >+ --m_currentPaintEffectFrameIterator; > } else { > const EffectFrameImpl* frameImpl = static_cast<const EffectFrameImpl*>(frame); > frameImpl->finalRender(region, opacity, frameOpacity); >@@ -255,9 +254,9 @@ > > void EffectsHandlerImpl::postPaintWindow(EffectWindow* w) > { >- if (current_paint_window < loaded_effects.size()) { >- loaded_effects.at(current_paint_window++).second->postPaintWindow(w); >- --current_paint_window; >+ if (m_currentPaintWindowIterator != m_activeEffects.end()) { >+ (*m_currentPaintWindowIterator++)->postPaintWindow(w); >+ --m_currentPaintWindowIterator; > } > // no special final code > } >@@ -272,18 +271,18 @@ > > void EffectsHandlerImpl::drawWindow(EffectWindow* w, int mask, QRegion region, WindowPaintData& data) > { >- if (current_draw_window < loaded_effects.size()) { >- loaded_effects.at(current_draw_window++).second->drawWindow(w, mask, region, data); >- --current_draw_window; >+ if (m_currentDrawWindowIterator != m_activeEffects.end()) { >+ (*m_currentDrawWindowIterator++)->drawWindow(w, mask, region, data); >+ --m_currentDrawWindowIterator; > } else > scene->finalDrawWindow(static_cast<EffectWindowImpl*>(w), mask, region, data); > } > > void EffectsHandlerImpl::buildQuads(EffectWindow* w, WindowQuadList& quadList) > { >- if (current_build_quads < loaded_effects.size()) { >- loaded_effects.at(current_build_quads++).second->buildQuads(w, quadList); >- --current_build_quads; >+ if (m_currentBuildQuadsIterator != m_activeEffects.end()) { >+ (*m_currentBuildQuadsIterator++)->buildQuads(w, quadList); >+ --m_currentBuildQuadsIterator; > } > } > >@@ -305,10 +304,17 @@ > // start another painting pass > void EffectsHandlerImpl::startPaint() > { >- assert(current_paint_screen == 0); >- assert(current_paint_window == 0); >- assert(current_draw_window == 0); >- assert(current_build_quads == 0); >+ m_activeEffects.clear(); >+ for(QVector< KWin::EffectPair >::iterator it = loaded_effects.begin(); it != loaded_effects.end(); ++it) { >+ if (it->second->isActive()) { >+ m_activeEffects << it->second; >+ } >+ } >+ m_currentDrawWindowIterator = m_activeEffects.begin(); >+ m_currentPaintWindowIterator = m_activeEffects.begin(); >+ m_currentPaintScreenIterator = m_activeEffects.begin(); >+ m_currentPaintEffectFrameIterator = m_activeEffects.begin(); >+ m_currentBuildQuadsIterator = m_activeEffects.begin(); > } > > void EffectsHandlerImpl::slotClientMaximized(KWin::Client *c, KDecorationDefines::MaximizeMode maxMode) >@@ -1022,10 +1028,6 @@ > bool EffectsHandlerImpl::loadEffect(const QString& name, bool checkDefault) > { > Workspace::self()->addRepaintFull(); >- assert(current_paint_screen == 0); >- assert(current_paint_window == 0); >- assert(current_draw_window == 0); >- assert(current_build_quads == 0); > > if (!name.startsWith(QLatin1String("kwin4_effect_"))) > kWarning(1212) << "Effect names usually have kwin4_effect_ prefix" ; >@@ -1134,10 +1136,6 @@ > void EffectsHandlerImpl::unloadEffect(const QString& name) > { > Workspace::self()->addRepaintFull(); >- assert(current_paint_screen == 0); >- assert(current_paint_window == 0); >- assert(current_draw_window == 0); >- assert(current_build_quads == 0); > > for (QMap< int, EffectPair >::iterator it = effect_order.begin(); it != effect_order.end(); ++it) { > if (it.value().first == name) { >diff -uNr a/kwin-4.7.3/kwin/effects.h b/kwin-4.7.3/kwin/effects.h >--- a/kwin-4.7.3/kwin/effects.h 2011-11-03 23:29:48.327553301 -0400 >+++ b/kwin-4.7.3/kwin/effects.h 2011-11-03 23:29:58.247553852 -0400 >@@ -208,7 +208,14 @@ > QHash< long, int > registered_atoms; > int next_window_quad_type; > int mouse_poll_ref_count; >- int current_paint_effectframe; >+ >+private: >+ QList< Effect* > m_activeEffects; >+ QList< Effect* >::iterator m_currentDrawWindowIterator; >+ QList< Effect* >::iterator m_currentPaintWindowIterator; >+ QList< Effect* >::iterator m_currentPaintEffectFrameIterator; >+ QList< Effect* >::iterator m_currentPaintScreenIterator; >+ QList< Effect* >::iterator m_currentBuildQuadsIterator; > }; > > class EffectWindowImpl : public EffectWindow >diff -uNr a/kwin-4.7.3/kwin/libkwineffects/kwineffects.cpp b/kwin-4.7.3/kwin/libkwineffects/kwineffects.cpp >--- a/kwin-4.7.3/kwin/libkwineffects/kwineffects.cpp 2011-11-03 23:29:48.324553301 -0400 >+++ b/kwin-4.7.3/kwin/libkwineffects/kwineffects.cpp 2011-11-03 23:29:58.248553852 -0400 >@@ -172,6 +172,11 @@ > return false; > } > >+bool Effect::isActive() const >+{ >+ return true; >+} >+ > void Effect::drawWindow(EffectWindow* w, int mask, QRegion region, WindowPaintData& data) > { > effects->drawWindow(w, mask, region, data); >@@ -230,11 +235,7 @@ > //**************************************** > > EffectsHandler::EffectsHandler(CompositingType type) >- : current_paint_screen(0) >- , current_paint_window(0) >- , current_draw_window(0) >- , current_build_quads(0) >- , compositing_type(type) >+ : compositing_type(type) > { > if (compositing_type == NoCompositing) > return; >diff -uNr a/kwin-4.7.3/kwin/libkwineffects/kwineffects.h b/kwin-4.7.3/kwin/libkwineffects/kwineffects.h >--- a/kwin-4.7.3/kwin/libkwineffects/kwineffects.h 2011-11-03 23:29:48.324553301 -0400 >+++ b/kwin-4.7.3/kwin/libkwineffects/kwineffects.h 2011-11-03 23:37:36.975579384 -0400 >@@ -447,6 +447,23 @@ > > virtual bool borderActivated(ElectricBorder border); > >+ /** >+ * Overwrite this method to indicate whether your effect will be doing something in >+ * the next frame to be rendered. If the method returns @c false the effect will be >+ * excluded from the chained methods in the next rendered frame. >+ * >+ * This method is called always directly before the paint loop begins. So it is totally >+ * fine to e.g. react on a window event, issue a repaint to trigger an animation and >+ * change a flag to indicate that this method returns @c true. >+ * >+ * As the method is called each frame, you should not perform complex calculations. >+ * Best use just a boolean flag. >+ * >+ * The default implementation of this method returns @c true. >+ * @since 4.8 >+ **/ >+ virtual bool isActive() const; >+ > static int displayWidth(); > static int displayHeight(); > static QPoint cursorPos(); >@@ -1023,10 +1040,6 @@ > QHash< QString, KLibrary* > effect_libraries; > QList< InputWindowPair > input_windows; > //QHash< QString, EffectFactory* > effect_factories; >- int current_paint_screen; >- int current_paint_window; >- int current_draw_window; >- int current_build_quads; > CompositingType compositing_type; > }; > >@@ -1739,14 +1752,14 @@ > * Returns whether or not a specified window is being managed > * by this manager object. > */ >- inline bool isManaging(EffectWindow *w) { >+ inline bool isManaging(EffectWindow *w) const { > return m_managedWindows.contains(w); > } > /** > * Returns whether or not this manager object is actually > * managing any windows or not. > */ >- inline bool managingWindows() { >+ inline bool managingWindows() const { > return !m_managedWindows.empty(); > } > /** >@@ -1754,14 +1767,14 @@ > * or not. Can be used to see if an effect should be > * processed and displayed or not. > */ >- inline bool areWindowsMoving() { >+ inline bool areWindowsMoving() const { > return !m_movingWindowsSet.isEmpty(); > } > /** > * Returns whether a window has reached its targets yet > * or not. > */ >- inline bool isWindowMoving(EffectWindow *w) { >+ inline bool isWindowMoving(EffectWindow *w) const { > return m_movingWindowsSet.contains(w); > } >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 389467
: 291627