File compiz-fusion-plugins-expo.patch of Package compiz-fusion-plugins-main
diff -Nurp o/src/expo/expo.c n/src/expo/expo.c
--- o/src/expo/expo.c 2010-02-06 14:16:28.000000000 +0800
+++ n/src/expo/expo.c 2010-02-06 14:12:50.000000000 +0800
@@ -1576,10 +1576,6 @@ expoDonePaintScreen (CompScreen * s)
continue;
}
- if (!(w->type & (CompWindowTypeNormalMask |
- CompWindowTypeFullscreenMask)))
- continue;
-
xOffset = s->hsize * s->width;
yOffset = s->vsize * s->height;
@@ -1601,6 +1597,18 @@ expoDonePaintScreen (CompScreen * s)
if (!inWindow)
continue;
+ /* make sure we never move windows we're not allowed to move */
+ if (!w->managed)
+ w = NULL;
+ else if (!(w->actions & CompWindowActionMoveMask))
+ w = NULL;
+ else if (w->type & (CompWindowTypeDockMask |
+ CompWindowTypeDesktopMask))
+ w = NULL;
+
+ if (!w)
+ break;
+
es->dndState = DnDDuring;
es->dndWindow = w;
@@ -1617,7 +1625,7 @@ expoDonePaintScreen (CompScreen * s)
}
else
{
- /* no window was hovered */
+ /* no movable window was hovered */
es->dndState = DnDNone;
}