Gentoo Archives: gentoo-commits

From: "Tomas Chvatal (scarabeus)" <scarabeus@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] gentoo-x86 commit in kde-base/plasma-workspace/files: 4.3.5-magiclamp-minimize.patch
Date: Wed, 03 Feb 2010 19:18:42
Message-Id: E1NckkI-00067y-SV@stork.gentoo.org
1 scarabeus 10/02/03 19:18:38
2
3 Added: 4.3.5-magiclamp-minimize.patch
4 Log:
5 Add patch per bug #295511.
6 (Portage version: 2.2_rc62/cvs/Linux x86_64)
7
8 Revision Changes Path
9 1.1 kde-base/plasma-workspace/files/4.3.5-magiclamp-minimize.patch
10
11 file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/kde-base/plasma-workspace/files/4.3.5-magiclamp-minimize.patch?rev=1.1&view=markup
12 plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/kde-base/plasma-workspace/files/4.3.5-magiclamp-minimize.patch?rev=1.1&content-type=text/plain
13
14 Index: 4.3.5-magiclamp-minimize.patch
15 ===================================================================
16 diff --git a/kwin/effects/magiclamp/magiclamp.cpp b/kwin/effects/magiclamp/magiclamp.cpp
17 index e1572cb..44406a2 100644
18 --- a/kwin/effects/magiclamp/magiclamp.cpp
19 +++ b/kwin/effects/magiclamp/magiclamp.cpp
20 @@ -301,6 +301,11 @@ void MagicLampEffect::postPaintScreen()
21 effects->postPaintScreen();
22 }
23
24 +void MagicLampEffect::windowDeleted( EffectWindow* w )
25 +{
26 + mTimeLineWindows.remove( w );
27 +}
28 +
29 void MagicLampEffect::windowMinimized( EffectWindow* w )
30 {
31 mTimeLineWindows[w].setCurveShape(TimeLine::LinearCurve);
32 diff --git a/kwin/effects/magiclamp/magiclamp.h b/kwin/effects/magiclamp/magiclamp.h
33 index a7f134d..84bfa7e 100644
34 --- a/kwin/effects/magiclamp/magiclamp.h
35 +++ b/kwin/effects/magiclamp/magiclamp.h
36 @@ -38,6 +38,7 @@ class MagicLampEffect
37 virtual void paintWindow( EffectWindow* w, int mask, QRegion region, WindowPaintData& data );
38 virtual void postPaintScreen();
39
40 + virtual void windowDeleted( EffectWindow* c );
41 virtual void windowMinimized( EffectWindow* c );
42 virtual void windowUnminimized( EffectWindow* c );
43
44 diff --git a/kwin/effects/minimizeanimation/minimizeanimation.cpp b/kwin/effects/minimizeanimation/minimizeanimation.cpp
45 index 9432504..905a64b 100644
46 --- a/kwin/effects/minimizeanimation/minimizeanimation.cpp
47 +++ b/kwin/effects/minimizeanimation/minimizeanimation.cpp
48 @@ -39,34 +39,39 @@ void MinimizeAnimationEffect::prePaintScreen( ScreenPrePaintData& data, int time
49 // whole screen won't be repainted, resulting in artefacts
50 data.mask |= PAINT_SCREEN_WITH_TRANSFORMED_WINDOWS;
51
52 - effects->prePaintScreen(data, time);
53 - }
54 -
55 -void MinimizeAnimationEffect::prePaintWindow( EffectWindow* w, WindowPrePaintData& data, int time )
56 - {
57 - if( mTimeLineWindows.contains( w ))
58 + QHash< EffectWindow*, TimeLine >::iterator entry = mTimeLineWindows.begin();
59 + bool erase = false;
60 + while( entry != mTimeLineWindows.end() )
61 {
62 - if( w->isMinimized() )
63 + TimeLine &timeline = entry.value();
64 + if( entry.key()->isMinimized() )
65 {
66 - mTimeLineWindows[w].addTime(time);
67 - if( mTimeLineWindows[w].progress() >= 1.0f )
68 - mTimeLineWindows.remove( w );
69 + timeline.addTime(time);
70 + erase = (timeline.progress() >= 1.0f);
71 }
72 else
73 {
74 - mTimeLineWindows[w].removeTime(time);
75 - if( mTimeLineWindows[w].progress() <= 0.0f )
76 - mTimeLineWindows.remove( w );
77 + timeline.removeTime(time);
78 + erase = (timeline.progress() <= 0.0f);
79 }
80 + if( erase )
81 + entry = mTimeLineWindows.erase( entry );
82 + else
83 + ++entry;
84 + }
85
86 - // Schedule window for transformation if the animation is still in
87 - // progress
88 - if( mTimeLineWindows.contains( w ))
89 - {
90 - // We'll transform this window
91 - data.setTransformed();
92 - w->enablePainting( EffectWindow::PAINT_DISABLED_BY_MINIMIZE );
93 - }
94 + effects->prePaintScreen(data, time);
95 + }
96 +
97 +void MinimizeAnimationEffect::prePaintWindow( EffectWindow* w, WindowPrePaintData& data, int time )
98 + {
99 + // Schedule window for transformation if the animation is still in
100 + // progress
101 + if( mTimeLineWindows.contains( w ) )
102 + {
103 + // We'll transform this window
104 + data.setTransformed();
105 + w->enablePainting( EffectWindow::PAINT_DISABLED_BY_MINIMIZE );
106 }
107
108 effects->prePaintWindow( w, data, time );
109 @@ -74,10 +79,11 @@ void MinimizeAnimationEffect::prePaintWindow( EffectWindow* w, WindowPrePaintDat
110
111 void MinimizeAnimationEffect::paintWindow( EffectWindow* w, int mask, QRegion region, WindowPaintData& data )
112 {
113 - if( mTimeLineWindows.contains( w ))
114 + QHash< EffectWindow*, TimeLine >::const_iterator entry = mTimeLineWindows.find(w);
115 + if( entry != mTimeLineWindows.constEnd() )
116 {
117 // 0 = not minimized, 1 = fully minimized
118 - double progress = mTimeLineWindows[w].value();
119 + double progress = entry->value();
120
121 QRect geo = w->geometry();
122 QRect icon = w->iconGeometry();
123 @@ -107,18 +113,25 @@ void MinimizeAnimationEffect::postPaintScreen()
124 effects->postPaintScreen();
125 }
126
127 +void MinimizeAnimationEffect::windowDeleted( EffectWindow* w )
128 + {
129 + mTimeLineWindows.remove( w );
130 + }
131 +
132 void MinimizeAnimationEffect::windowMinimized( EffectWindow* w )
133 {
134 - mTimeLineWindows[w].setCurveShape(TimeLine::EaseInCurve);
135 - mTimeLineWindows[w].setDuration( animationTime( 250 ));
136 - mTimeLineWindows[w].setProgress(0.0f);
137 + TimeLine &timeline = mTimeLineWindows[w];
138 + timeline.setCurveShape(TimeLine::EaseInCurve);
139 + timeline.setDuration( animationTime( 250 ));
140 + timeline.setProgress(0.0f);
141 }
142
143 void MinimizeAnimationEffect::windowUnminimized( EffectWindow* w )
144 {
145 - mTimeLineWindows[w].setCurveShape(TimeLine::EaseOutCurve);
146 - mTimeLineWindows[w].setDuration( animationTime( 250 ));
147 - mTimeLineWindows[w].setProgress(1.0f);
148 + TimeLine &timeline = mTimeLineWindows[w];
149 + timeline.setCurveShape(TimeLine::EaseOutCurve);
150 + timeline.setDuration( animationTime( 250 ));
151 + timeline.setProgress(1.0f);
152 }
153
154 } // namespace
155 diff --git a/kwin/effects/minimizeanimation/minimizeanimation.h b/kwin/effects/minimizeanimation/minimizeanimation.h
156 index d8abd8c..96e4578 100644
157 --- a/kwin/effects/minimizeanimation/minimizeanimation.h
158 +++ b/kwin/effects/minimizeanimation/minimizeanimation.h
159 @@ -42,6 +42,7 @@ class MinimizeAnimationEffect
160 virtual void paintWindow( EffectWindow* w, int mask, QRegion region, WindowPaintData& data );
161 virtual void postPaintScreen();
162
163 + virtual void windowDeleted( EffectWindow* c );
164 virtual void windowMinimized( EffectWindow* c );
165 virtual void windowUnminimized( EffectWindow* c );