1
=== modified file 'src/expo.cpp'
2
Index: compiz-plugins-main-0.9.6/expo/src/expo.cpp
3
===================================================================
4
--- compiz-plugins-main-0.9.6.orig/expo/src/expo.cpp 2011-10-08 00:08:11.678601665 +0800
5
+++ compiz-plugins-main-0.9.6/expo/src/expo.cpp 2011-10-08 00:08:36.906726737 +0800
7
screen->vp ().y () - selectedVp.y (), true);
9
/* update saved window attributes in case we moved the
10
- window to a new viewport */
11
+ window to a new viewport */
12
if (dndWindow->saveMask () & CWX)
14
dndWindow->saveWc ().x = dndWindow->saveWc ().x % screen->width ();
18
/* update window attibutes to make sure a moved maximized window
19
- is properly snapped to the work area */
20
+ is properly snapped to the work area */
21
if (dndWindow->state () & MAXIMIZE_STATE)
22
dndWindow->updateAttributes (CompStackingUpdateModeNone);
26
- dndWindows.clear ();
32
expoCam = MAX (0.0, expoCam - val);
34
+ if (dndState == DnDDuring)
36
+ foreach (CompWindow *w, dndWindows)
37
+ ExpoWindow::get (w)->dndOpacity = MIN (1.0, ExpoWindow::get (w)->dndOpacity + val);
39
+ else if (dndState == DnDNone)
41
+ CompWindowList::iterator it = dndWindows.begin ();
43
+ while (it != dndWindows.end ())
45
+ ExpoWindow::get ((*it))->dndOpacity = MAX (0.0, ExpoWindow::get ((*it))->dndOpacity - val);
47
+ if (ExpoWindow::get ((*it))->dndOpacity <= 0.0f)
49
+ dndWindows.erase (it);
50
+ it = dndWindows.begin ();
59
unsigned int i, j, vp;
61
foreach (float& vp, vpActivity)
62
if (vp != 0.0 && vp != 1.0)
63
cScreen->damageScreen ();
65
+ foreach (CompWindow *w, dndWindows)
66
+ if (ExpoWindow::get (w)->dndOpacity != 0.0f &&
67
+ ExpoWindow::get (w)->dndOpacity != 1.0f)
68
+ cScreen->damageScreen ();
71
if (grabIndex && expoCam <= 0.0f && !expoMode)
73
screen->removeGrab (grabIndex, NULL);
76
- cScreen->damageScreen ();
79
cScreen->donePaint ();
85
- if (std::find (dndWindows.begin (), dndWindows.end (), w) == dndWindows.end ())
86
- dndWindows.push_back (w);
87
+ dndWindows.push_back (w);
89
w->grabNotify (nx, ny, 0,
90
CompWindowGrabMoveMask |
93
vp.setY (screen->vpSize ().height () + vp.y ());
95
- paintViewport (attrib, sTransform, region, output, mask, vp, vpCamPos, reflection);
96
+ paintViewport (attrib, sTransform, infiniteRegion, output, mask, vp, vpCamPos, reflection);
99
paintingDndWindow = false;
100
@@ -1205,7 +1228,7 @@
104
- if ((vp == eScreen->paintingVp || window->onAllViewports ()) && !eScreen->paintingDndWindow)
105
+ if (vp == eScreen->paintingVp || window->onAllViewports ())
107
fA.setBrightness (fragment.getBrightness () * eScreen->vpBrightness);
108
fA.setSaturation (fragment.getSaturation () * eScreen->vpSaturation);
109
@@ -1293,6 +1316,7 @@
117
@@ -1633,6 +1657,7 @@
118
cWindow (CompositeWindow::get (w)),
119
gWindow (GLWindow::get (w)),
120
eScreen (ExpoScreen::get (screen)),
124
CompositeWindowInterface::setHandler (cWindow, false);