From ad5b92588fbe36100cdc4ae7064883cd16e13a1e Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Sun, 16 Oct 2011 11:10:14 -0400 Subject: Don't make desktop switching interactive when no mods used. (Fix bug #5203) Make mod state passing more consistent, and always give actions the full state instead of stripping sometimes. (They ended up expecting it stripped always). --- openbox/actions/directionalwindows.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'openbox/actions/directionalwindows.c') diff --git a/openbox/actions/directionalwindows.c b/openbox/actions/directionalwindows.c index 602e7edc..0ad464b7 100644 --- a/openbox/actions/directionalwindows.c +++ b/openbox/actions/directionalwindows.c @@ -259,8 +259,9 @@ static gboolean i_input_func(guint initial_state, gpointer options, gboolean *used) { - guint mods; + guint mods, initial_mods; + initial_mods = obt_keyboard_only_modmasks(initial_state); mods = obt_keyboard_only_modmasks(e->xkey.state); if (e->type == KeyRelease) { /* remove from the state the mask of the modifier key being @@ -278,14 +279,13 @@ static gboolean i_input_func(guint initial_state, } /* There were no modifiers and they pressed enter */ - else if ((sym == XK_Return || sym == XK_KP_Enter) && !initial_state) { + else if ((sym == XK_Return || sym == XK_KP_Enter) && !initial_mods) { end_cycle(FALSE, e->xkey.state, options); return FALSE; } } /* They released the modifiers */ - else if (e->type == KeyRelease && initial_state && !(mods & initial_state)) - { + else if (e->type == KeyRelease && initial_mods && !(mods & initial_mods)) { end_cycle(FALSE, e->xkey.state, options); return FALSE; } -- cgit v1.2.3