From 27773e1cb7492de080bd19189b4fcd2a6b9a0e9e Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Sun, 22 Apr 2007 15:22:25 +0000 Subject: don't grab the pointer during interactive events. this allows you to alt-tab during a dnd. --- openbox/event.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'openbox/event.c') diff --git a/openbox/event.c b/openbox/event.c index 871b158a..502d1962 100644 --- a/openbox/event.c +++ b/openbox/event.c @@ -590,9 +590,10 @@ static void event_process(const XEvent *ec, gpointer data) NULL, g_direct_equal, NULL); if (e->type == ButtonPress || e->type == ButtonRelease || - e->type == MotionNotify) - mouse_event(client, e); - else if (e->type == KeyPress) { + e->type == MotionNotify) { + if (!keyboard_interactively_grabbed()) + mouse_event(client, e); + } else if (e->type == KeyPress) { keyboard_event((focus_cycle_target ? focus_cycle_target : (focus_hilite ? focus_hilite : client)), e); @@ -762,6 +763,8 @@ static void event_handle_client(ObClient *client, XEvent *e) frame_adjust_state(client->frame); break; case OB_FRAME_CONTEXT_FRAME: + if (keyboard_interactively_grabbed()) + break; if (config_focus_follow && config_focus_delay) ob_main_loop_timeout_remove_data(ob_main_loop, focus_delay_func, @@ -803,6 +806,8 @@ static void event_handle_client(ObClient *client, XEvent *e) frame_adjust_state(client->frame); break; case OB_FRAME_CONTEXT_FRAME: + if (keyboard_interactively_grabbed()) + break; if (e->xcrossing.mode == NotifyGrab || e->xcrossing.mode == NotifyUngrab) { -- cgit v1.2.3