better handling of starting a new interactive grab while one is in progress

This commit is contained in:
Dana Jansens 2003-08-20 23:25:59 +00:00
parent a098c2437e
commit d8d1eb53cd

View file

@ -112,14 +112,20 @@ gboolean keyboard_bind(GList *keylist, ObAction *action)
void keyboard_interactive_grab(guint state, ObClient *client,
ObFrameContext context, ObAction *action)
{
if (!interactive_grab && grab_keyboard(TRUE)) {
if (!interactive_grab) {
if (!grab_keyboard(TRUE))
return;
if (!grab_pointer(TRUE, None)) {
grab_keyboard(FALSE);
return;
}
interactive_grab = TRUE;
grabbed_state = state;
grabbed_client = client;
grabbed_action = action;
grabbed_context = context;
grab_pointer(TRUE, None);
}
grabbed_state = state;
grabbed_client = client;
grabbed_action = action;
grabbed_context = context;
}
gboolean keyboard_process_interactive_grab(const XEvent *e,