Author: olivier Date: 2009-02-23 23:59:06 +0000 (Mon, 23 Feb 2009) New Revision: 29550
Modified: xfwm4/trunk/ChangeLog xfwm4/trunk/src/cycle.c xfwm4/trunk/src/moveresize.c Log: * src/cycle.c, src/moveresize.c: Make sure any active grab on the keyboard and pointer are released (Corollary to bug #4959). Modified: xfwm4/trunk/ChangeLog =================================================================== --- xfwm4/trunk/ChangeLog 2009-02-23 20:24:02 UTC (rev 29549) +++ xfwm4/trunk/ChangeLog 2009-02-23 23:59:06 UTC (rev 29550) @@ -1,5 +1,10 @@ 2009-02-23 olivier + * src/cycle.c, src/moveresize.c: Make sure any active grab on the + keyboard and pointer are released (Corollary to bug #4959). + +2009-02-23 olivier + * src/netwm.h, src/netwm.c, src/client.h, src/client.c, src/events.c, src/focus.c: Capture user time at startup, a bit of refactoring to avoid duplication of code (that led to this bug to remain after a Modified: xfwm4/trunk/src/cycle.c =================================================================== --- xfwm4/trunk/src/cycle.c 2009-02-23 20:24:02 UTC (rev 29549) +++ xfwm4/trunk/src/cycle.c 2009-02-23 23:59:06 UTC (rev 29550) @@ -214,8 +214,8 @@ TRACE ("grab failed in clientCycle"); gdk_beep (); - myScreenUngrabKeyboard (screen_info, ev->time); - myScreenUngrabPointer (screen_info, ev->time); + myScreenUngrabKeyboard (screen_info, CurrentTime); + myScreenUngrabPointer (screen_info, CurrentTime); return; } @@ -304,6 +304,10 @@ clientSetFocus (screen_info, c, myDisplayGetCurrentTime (display_info), NO_FOCUS_FLAG); } - myScreenUngrabKeyboard (screen_info, myDisplayGetCurrentTime (display_info)); - myScreenUngrabPointer (screen_info, myDisplayGetCurrentTime (display_info)); + /* + * Use CurrentTime instead of actual last event time to make sure + * that the grab is released in any case. + */ + myScreenUngrabKeyboard (screen_info, CurrentTime); + myScreenUngrabPointer (screen_info, CurrentTime); } Modified: xfwm4/trunk/src/moveresize.c =================================================================== --- xfwm4/trunk/src/moveresize.c 2009-02-23 20:24:02 UTC (rev 29549) +++ xfwm4/trunk/src/moveresize.c 2009-02-23 23:59:06 UTC (rev 29550) @@ -952,8 +952,8 @@ TRACE ("grab failed in clientMove"); gdk_beep (); - myScreenUngrabKeyboard (screen_info, myDisplayGetCurrentTime (display_info)); - myScreenUngrabPointer (screen_info, myDisplayGetCurrentTime (display_info)); + myScreenUngrabKeyboard (screen_info, CurrentTime); + myScreenUngrabPointer (screen_info, CurrentTime); return; } @@ -1022,9 +1022,14 @@ gtk_main (); eventFilterPop (display_info->xfilter); } - myScreenUngrabKeyboard (screen_info, myDisplayGetCurrentTime (display_info)); - myScreenUngrabPointer (screen_info, myDisplayGetCurrentTime (display_info)); + /* + * Use CurrentTime instead of actual last event time to make sure + * that the grab is released in any case. + */ + myScreenUngrabKeyboard (screen_info, CurrentTime); + myScreenUngrabPointer (screen_info, CurrentTime); + if (passdata.grab && screen_info->params->box_move) { myDisplayUngrabServer (display_info); @@ -1491,8 +1496,8 @@ TRACE ("grab failed in clientResize"); gdk_beep (); - myScreenUngrabKeyboard (screen_info, myDisplayGetCurrentTime (display_info)); - myScreenUngrabPointer (screen_info, myDisplayGetCurrentTime (display_info)); + myScreenUngrabKeyboard (screen_info, CurrentTime); + myScreenUngrabPointer (screen_info, CurrentTime); return; } @@ -1563,9 +1568,14 @@ gtk_main (); eventFilterPop (display_info->xfilter); } - myScreenUngrabKeyboard (screen_info, myDisplayGetCurrentTime (display_info)); - myScreenUngrabPointer (screen_info, myDisplayGetCurrentTime (display_info)); + /* + * Use CurrentTime instead of actual last event time to make sure + * that the grab is released in any case. + */ + myScreenUngrabKeyboard (screen_info, CurrentTime); + myScreenUngrabPointer (screen_info, CurrentTime); + if (passdata.grab && screen_info->params->box_resize) { myDisplayUngrabServer (display_info); _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org http://foo-projects.org/mailman/listinfo/xfce4-commits