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;
 	    }
 
openSUSE Build Service is sponsored by