[Xfce4-commits] r26909 - xfwm4/trunk/src
Olivier Fourdan
olivier at xfce.org
Wed Apr 30 22:52:27 CEST 2008
Author: olivier
Date: 2008-04-30 20:52:27 +0000 (Wed, 30 Apr 2008)
New Revision: 26909
Modified:
xfwm4/trunk/src/client.c
xfwm4/trunk/src/events.c
xfwm4/trunk/src/screen.c
Log:
Fix grab count not being decreased when pointer already grabbed by the client application
Modified: xfwm4/trunk/src/client.c
===================================================================
--- xfwm4/trunk/src/client.c 2008-04-30 10:42:11 UTC (rev 26908)
+++ xfwm4/trunk/src/client.c 2008-04-30 20:52:27 UTC (rev 26909)
@@ -4317,21 +4317,12 @@
g2 = myScreenGrabPointer (screen_info, ButtonMotionMask | ButtonReleaseMask,
myDisplayGetCursorMove (display_info),
myDisplayGetCurrentTime (display_info));
- if (passdata.use_keys && !g1)
+ if ((passdata.use_keys && !g1) || (!g2))
{
- TRACE ("keyboard grab failed in clientMove");
+ TRACE ("grab failed in clientMove");
gdk_beep ();
myScreenUngrabKeyboard (screen_info);
-
- return;
- }
-
- if (!g2)
- {
- TRACE ("button grab failed in clientMove");
-
- gdk_beep ();
myScreenUngrabPointer (screen_info);
return;
@@ -4396,10 +4387,6 @@
}
clientConfigure (c, &wc, changes, NO_CFG_FLAG);
- if (g1)
- {
- myScreenUngrabKeyboard (screen_info);
- }
if (!passdata.released)
{
/* If this is a drag-move, wait for the button to be released.
@@ -4409,6 +4396,7 @@
gtk_main ();
eventFilterPop (display_info->xfilter);
}
+ myScreenUngrabKeyboard (screen_info);
myScreenUngrabPointer (screen_info);
if (passdata.grab && screen_info->params->box_move)
@@ -4876,21 +4864,12 @@
myDisplayGetCursorResize(display_info, passdata.corner),
myDisplayGetCurrentTime (display_info));
- if (passdata.use_keys && !g1)
+ if ((passdata.use_keys && !g1) || (!g2))
{
- TRACE ("keyboard grab failed in clientResize");
+ TRACE ("grab failed in clientResize");
gdk_beep ();
myScreenUngrabKeyboard (screen_info);
-
- return;
- }
-
- if (!g2)
- {
- TRACE ("button grab failed in clientResize");
-
- gdk_beep ();
myScreenUngrabPointer (screen_info);
return;
@@ -4957,10 +4936,6 @@
c->xsync_waiting = FALSE;
#endif /* HAVE_XSYNC */
- if (g1)
- {
- myScreenUngrabKeyboard (screen_info);
- }
if (!passdata.released)
{
/* If this is a drag-resize, wait for the button to be released.
@@ -4970,6 +4945,7 @@
gtk_main ();
eventFilterPop (display_info->xfilter);
}
+ myScreenUngrabKeyboard (screen_info);
myScreenUngrabPointer (screen_info);
if (passdata.grab && screen_info->params->box_resize)
Modified: xfwm4/trunk/src/events.c
===================================================================
--- xfwm4/trunk/src/events.c 2008-04-30 10:42:11 UTC (rev 26908)
+++ xfwm4/trunk/src/events.c 2008-04-30 20:52:27 UTC (rev 26909)
@@ -482,7 +482,7 @@
status = EVENT_FILTER_REMOVE;
if (ev_screen_info->clients)
{
- clientCycle (ev_screen_info->clients->prev, (XEvent *) ev);
+ clientCycle (ev_screen_info->clients->prev, ev);
}
break;
case KEY_CLOSE_WINDOW:
Modified: xfwm4/trunk/src/screen.c
===================================================================
--- xfwm4/trunk/src/screen.c 2008-04-30 10:42:11 UTC (rev 26908)
+++ xfwm4/trunk/src/screen.c 2008-04-30 20:52:27 UTC (rev 26909)
@@ -399,7 +399,7 @@
{
grab = (XGrabKeyboard (myScreenGetXDisplay (screen_info),
screen_info->xfwm4_win,
- TRUE,
+ FALSE,
GrabModeAsync, GrabModeAsync,
time) == GrabSuccess);
}
@@ -422,7 +422,7 @@
{
grab = (XGrabPointer (myScreenGetXDisplay (screen_info),
screen_info->xfwm4_win,
- TRUE, event_mask,
+ FALSE, event_mask,
GrabModeAsync, GrabModeAsync,
screen_info->xroot,
cursor,
More information about the Xfce4-commits
mailing list