X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Factions%2Fdesktop.c;h=8dadf550af3b2ea2787015be50528e48ce8c7a2d;hb=f55caaf6a003c8e9dece297e0e1aca89a1ee99ef;hp=a3a1f6b9c121b00f6158a5ef42d14a1fb6681d7f;hpb=179312f9ae8ad3fdae977ac0d4004aa6ef33f5eb;p=chaz%2Fopenbox diff --git a/openbox/actions/desktop.c b/openbox/actions/desktop.c index a3a1f6b9..8dadf550 100644 --- a/openbox/actions/desktop.c +++ b/openbox/actions/desktop.c @@ -319,8 +319,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 @@ -336,11 +337,11 @@ static gboolean i_input_func(guint initial_state, return FALSE; /* 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) 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)) { return FALSE; } @@ -350,7 +351,8 @@ static gboolean i_input_func(guint initial_state, static gboolean i_pre_func(guint initial_state, gpointer options) { - if (!initial_state) { + guint initial_mods = obt_keyboard_only_modmasks(initial_state); + if (!initial_mods) { Options *o = options; o->interactive = FALSE; return FALSE;