summaryrefslogtreecommitdiff
path: root/openbox/event.c
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2007-04-22 15:22:25 +0000
committerDana Jansens <danakj@orodu.net>2007-04-22 15:22:25 +0000
commit27773e1cb7492de080bd19189b4fcd2a6b9a0e9e (patch)
tree8bacdfc836ddb9d8da398e5981061fb578641b80 /openbox/event.c
parent4c672be2e1f39e72eb7d7e99f129e61338f481b2 (diff)
don't grab the pointer during interactive events. this allows you to alt-tab during a dnd.
Diffstat (limited to 'openbox/event.c')
-rw-r--r--openbox/event.c11
1 files changed, 8 insertions, 3 deletions
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)
{