interactive_act = act;
actions_act_ref(interactive_act);
- interactive_initial_state = obt_keyboard_only_modmasks(state);
+ interactive_initial_state = state;
/* if using focus_delay, stop the timer now so that focus doesn't go
moving on us, which would kill the action */
gboolean *used)
{
Options *o = options;
- 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
}
/* 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) {
o->cancel = FALSE;
o->state = e->xkey.state;
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))
{
o->cancel = FALSE;
o->state = e->xkey.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
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;
}
static gboolean i_pre_func(guint initial_state, gpointer options)
{
- if (!initial_state) {
+ guint initial_mods = obt_keyboard_only_modmasks(initial_state);
+ if (!inital_mods) {
Options *o = options;
o->interactive = FALSE;
return FALSE;
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
}
/* 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;
}