44f7ac3
diff -Nur xfwm4-4.2.1.orig/src/client.c xfwm4-4.2.1/src/client.c
44f7ac3
--- xfwm4-4.2.1.orig/src/client.c	2005-03-14 13:11:55.000000000 -0700
44f7ac3
+++ xfwm4-4.2.1/src/client.c	2005-03-27 21:10:57.241200236 -0700
44f7ac3
@@ -1,4 +1,4 @@
44f7ac3
-/*      $Id: client.c,v 1.461.2.11 2005/03/14 19:48:50 olivier Exp $
44f7ac3
+/*      $Id: client.c,v 1.461.2.12 2005/03/16 20:38:45 olivier Exp $
44f7ac3
  
44f7ac3
         This program is free software; you can redistribute it and/or modify
44f7ac3
         it under the terms of the GNU General Public License as published by
44f7ac3
@@ -3130,18 +3130,14 @@
44f7ac3
     g1 = myScreenGrabKeyboard (screen_info, myDisplayGetCurrentTime (display_info));
44f7ac3
     g2 = myScreenGrabPointer (screen_info, ButtonMotionMask | ButtonReleaseMask, 
44f7ac3
                               cursor, myDisplayGetCurrentTime (display_info));
44f7ac3
-    if (((passdata.use_keys) && !g1) || !g2)
44f7ac3
+    if (!g1 || !g2)
44f7ac3
     {
44f7ac3
         TRACE ("grab failed in clientMove");
44f7ac3
+
44f7ac3
         gdk_beep ();
44f7ac3
-        if ((passdata.use_keys) && g1)
44f7ac3
-        {
44f7ac3
-            myScreenUngrabKeyboard (screen_info, myDisplayGetCurrentTime (display_info));
44f7ac3
-        }
44f7ac3
-        if (g2)
44f7ac3
-        {
44f7ac3
-            myScreenUngrabPointer (screen_info, myDisplayGetCurrentTime (display_info));
44f7ac3
-        }
44f7ac3
+        myScreenUngrabKeyboard (screen_info, myDisplayGetCurrentTime (display_info));
44f7ac3
+        myScreenUngrabPointer (screen_info, myDisplayGetCurrentTime (display_info));
44f7ac3
+
44f7ac3
         return;
44f7ac3
     }
44f7ac3
 
44f7ac3
@@ -3592,18 +3588,14 @@
44f7ac3
                               myDisplayGetCursorResize(display_info, passdata.corner), 
44f7ac3
                               myDisplayGetCurrentTime (display_info));
44f7ac3
 
44f7ac3
-    if (((passdata.use_keys) && !g1) || !g2)
44f7ac3
+    if (!g1 || !g2)
44f7ac3
     {
44f7ac3
         TRACE ("grab failed in clientResize");
44f7ac3
+
44f7ac3
         gdk_beep ();
44f7ac3
-        if ((passdata.use_keys) && (g1 == GrabSuccess))
44f7ac3
-        {
44f7ac3
-            myScreenUngrabKeyboard (screen_info, myDisplayGetCurrentTime (display_info));
44f7ac3
-        }
44f7ac3
-        if (g2 == GrabSuccess)
44f7ac3
-        {
44f7ac3
-            myScreenUngrabPointer (screen_info, myDisplayGetCurrentTime (display_info));
44f7ac3
-        }
44f7ac3
+        myScreenUngrabKeyboard (screen_info, myDisplayGetCurrentTime (display_info));
44f7ac3
+        myScreenUngrabPointer (screen_info, myDisplayGetCurrentTime (display_info));
44f7ac3
+
44f7ac3
         return;
44f7ac3
     }
44f7ac3
 
44f7ac3
@@ -3799,15 +3791,11 @@
44f7ac3
     if (!g1 || !g2)
44f7ac3
     {
44f7ac3
         TRACE ("grab failed in clientCycle");
44f7ac3
+
44f7ac3
         gdk_beep ();
44f7ac3
-        if (g1 == GrabSuccess)
44f7ac3
-        {
44f7ac3
-            myScreenUngrabKeyboard (screen_info, myDisplayGetCurrentTime (display_info));
44f7ac3
-        }
44f7ac3
-        if (g2 == GrabSuccess)
44f7ac3
-        {
44f7ac3
-            myScreenUngrabPointer (screen_info, myDisplayGetCurrentTime (display_info));
44f7ac3
-        }
44f7ac3
+        myScreenUngrabKeyboard (screen_info, myDisplayGetCurrentTime (display_info));
44f7ac3
+        myScreenUngrabPointer (screen_info, myDisplayGetCurrentTime (display_info));
44f7ac3
+
44f7ac3
         return;
44f7ac3
     }
44f7ac3
 
44f7ac3
diff -Nur xfwm4-4.2.1.orig/src/events.c xfwm4-4.2.1/src/events.c
44f7ac3
--- xfwm4-4.2.1.orig/src/events.c	2005-02-12 14:29:37.000000000 -0700
44f7ac3
+++ xfwm4-4.2.1/src/events.c	2005-03-27 21:10:57.244199772 -0700
44f7ac3
@@ -1,4 +1,4 @@
44f7ac3
-/*      $Id: events.c,v 1.297.2.2 2005/02/12 21:29:37 olivier Exp $
44f7ac3
+/*      $Id: events.c,v 1.297.2.3 2005/03/22 22:37:42 olivier Exp $
44f7ac3
  
44f7ac3
         This program is free software; you can redistribute it and/or modify
44f7ac3
         it under the terms of the GNU General Public License as published by
44f7ac3
@@ -205,6 +205,7 @@
44f7ac3
     {
44f7ac3
         TRACE ("grab failed in typeOfClick");
44f7ac3
         gdk_beep ();
44f7ac3
+        myScreenUngrabPointer (screen_info, ev->xbutton.time);
44f7ac3
         return XFWM_BUTTON_UNDEFINED;
44f7ac3
     }
44f7ac3
 
44f7ac3
diff -Nur xfwm4-4.2.1.orig/src/stacking.c xfwm4-4.2.1/src/stacking.c
44f7ac3
--- xfwm4-4.2.1.orig/src/stacking.c	2005-02-08 15:16:11.000000000 -0700
44f7ac3
+++ xfwm4-4.2.1/src/stacking.c	2005-03-27 21:10:57.245199617 -0700
44f7ac3
@@ -1,4 +1,4 @@
44f7ac3
-/*      $Id: stacking.c,v 1.26.2.2 2005/02/08 22:16:11 olivier Exp $
44f7ac3
+/*      $Id: stacking.c,v 1.26.2.3 2005/03/27 19:32:37 olivier Exp $
44f7ac3
  
44f7ac3
         This program is free software; you can redistribute it and/or modify
44f7ac3
         it under the terms of the GNU General Public License as published by
44f7ac3
@@ -240,7 +240,7 @@
44f7ac3
     Client *c = NULL;
44f7ac3
     Client *c2 = NULL;
44f7ac3
 
44f7ac3
-    TRACE ("entering clientAtPos");
44f7ac3
+    TRACE ("entering clientAtPosition");
44f7ac3
 
44f7ac3
     for (index = g_list_last (screen_info->windows_stack); index; index = g_list_previous (index))
44f7ac3
     {
44f7ac3
@@ -252,8 +252,8 @@
44f7ac3
                 && (c2 != exclude))
44f7ac3
             {
44f7ac3
                 c = c2;
44f7ac3
+        	break;
44f7ac3
             }
44f7ac3
-            break;
44f7ac3
         }
44f7ac3
     }
44f7ac3