summaryrefslogtreecommitdiff
path: root/openbox/actions/directionalwindows.c
diff options
context:
space:
mode:
Diffstat (limited to 'openbox/actions/directionalwindows.c')
-rw-r--r--openbox/actions/directionalwindows.c8
1 files changed, 4 insertions, 4 deletions
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;
}