save teh client for interactive actions cuz after teh keyboard is grabbed there is no client
Dana Jansens danakj@orodu.net
3 files changed,
6 insertions(+),
4 deletions(-)
M
openbox/event.c
→
openbox/event.c
@@ -488,7 +488,7 @@ {
if (menu_frame_visible) event_handle_menu(e); else { - if (!keyboard_process_interactive_grab(e)) { + if (!keyboard_process_interactive_grab(e, &client)) { if (moveresize_in_progress) moveresize_event(e);
M
openbox/keyboard.c
→
openbox/keyboard.c
@@ -157,7 +157,7 @@
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; gboolean handled = FALSE;@@ -192,7 +192,8 @@ keyboard_reset_chains();
} handled = TRUE; - } + } else + *client = s->client; } return handled;
M
openbox/keyboard.h
→
openbox/keyboard.h
@@ -22,7 +22,8 @@ void keyboard_reset_chains();
void keyboard_interactive_grab(guint state, struct _ObClient *client, 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);