save teh client for interactive actions cuz after teh keyboard is grabbed there is no client
This commit is contained in:
parent
fbbc4c55ba
commit
3fcba81510
3 changed files with 6 additions and 4 deletions
|
@ -488,7 +488,7 @@ static void event_process(const XEvent *ec, gpointer data)
|
||||||
if (menu_frame_visible)
|
if (menu_frame_visible)
|
||||||
event_handle_menu(e);
|
event_handle_menu(e);
|
||||||
else {
|
else {
|
||||||
if (!keyboard_process_interactive_grab(e)) {
|
if (!keyboard_process_interactive_grab(e, &client)) {
|
||||||
if (moveresize_in_progress)
|
if (moveresize_in_progress)
|
||||||
moveresize_event(e);
|
moveresize_event(e);
|
||||||
|
|
||||||
|
|
|
@ -157,7 +157,7 @@ void keyboard_interactive_grab(guint state, ObClient *client,
|
||||||
interactive_states = g_slist_append(interactive_states, s);
|
interactive_states = g_slist_append(interactive_states, s);
|
||||||
}
|
}
|
||||||
|
|
||||||
gboolean keyboard_process_interactive_grab(const XEvent *e)
|
gboolean keyboard_process_interactive_grab(const XEvent *e, ObClient **client)
|
||||||
{
|
{
|
||||||
GSList *it, *next;
|
GSList *it, *next;
|
||||||
gboolean handled = FALSE;
|
gboolean handled = FALSE;
|
||||||
|
@ -192,7 +192,8 @@ gboolean keyboard_process_interactive_grab(const XEvent *e)
|
||||||
}
|
}
|
||||||
|
|
||||||
handled = TRUE;
|
handled = TRUE;
|
||||||
}
|
} else
|
||||||
|
*client = s->client;
|
||||||
}
|
}
|
||||||
|
|
||||||
return handled;
|
return handled;
|
||||||
|
|
|
@ -22,7 +22,8 @@ void keyboard_reset_chains();
|
||||||
|
|
||||||
void keyboard_interactive_grab(guint state, struct _ObClient *client,
|
void keyboard_interactive_grab(guint state, struct _ObClient *client,
|
||||||
struct _ObAction *action);
|
struct _ObAction *action);
|
||||||
gboolean keyboard_process_interactive_grab(const XEvent *e);
|
gboolean keyboard_process_interactive_grab(const XEvent *e,
|
||||||
|
struct _ObClient **client);
|
||||||
|
|
||||||
void keyboard_grab_for_client(struct _ObClient *c, gboolean grab);
|
void keyboard_grab_for_client(struct _ObClient *c, gboolean grab);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue