use the new action ru system which always runs lists of actions instead of individual ones
This commit is contained in:
parent
77d8347234
commit
e5908c3f89
3 changed files with 10 additions and 16 deletions
|
@ -39,7 +39,7 @@ KeyBindingTree *keyboard_firstnode;
|
||||||
typedef struct {
|
typedef struct {
|
||||||
guint state;
|
guint state;
|
||||||
ObClient *client;
|
ObClient *client;
|
||||||
ObAction *action;
|
GSList *actions;
|
||||||
ObFrameContext context;
|
ObFrameContext context;
|
||||||
} ObInteractiveState;
|
} ObInteractiveState;
|
||||||
|
|
||||||
|
@ -178,7 +178,7 @@ void keyboard_interactive_grab(guint state, ObClient *client,
|
||||||
|
|
||||||
s->state = state;
|
s->state = state;
|
||||||
s->client = client;
|
s->client = client;
|
||||||
s->action = action;
|
s->actions = g_slist_append(NULL, action);
|
||||||
|
|
||||||
interactive_states = g_slist_append(interactive_states, s);
|
interactive_states = g_slist_append(interactive_states, s);
|
||||||
}
|
}
|
||||||
|
@ -186,8 +186,9 @@ void keyboard_interactive_grab(guint state, ObClient *client,
|
||||||
void keyboard_interactive_end(ObInteractiveState *s,
|
void keyboard_interactive_end(ObInteractiveState *s,
|
||||||
guint state, gboolean cancel)
|
guint state, gboolean cancel)
|
||||||
{
|
{
|
||||||
action_run_interactive(s->action, s->client, state, cancel, TRUE);
|
action_run_interactive(s->actions, s->client, state, cancel, TRUE);
|
||||||
|
|
||||||
|
g_slist_free(s->actions);
|
||||||
g_free(s);
|
g_free(s);
|
||||||
|
|
||||||
interactive_states = g_slist_remove(interactive_states, s);
|
interactive_states = g_slist_remove(interactive_states, s);
|
||||||
|
@ -276,13 +277,11 @@ void keyboard_event(ObClient *client, const XEvent *e)
|
||||||
curpos = p;
|
curpos = p;
|
||||||
grab_keys(TRUE);
|
grab_keys(TRUE);
|
||||||
} else {
|
} else {
|
||||||
GSList *it;
|
|
||||||
|
|
||||||
for (it = p->actions; it; it = it->next)
|
|
||||||
action_run_key(it->data, client, e->xkey.state,
|
|
||||||
e->xkey.x_root, e->xkey.y_root);
|
|
||||||
|
|
||||||
keyboard_reset_chains();
|
keyboard_reset_chains();
|
||||||
|
|
||||||
|
action_run_key(p->actions, client, e->xkey.state,
|
||||||
|
e->xkey.x_root, e->xkey.y_root);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -767,12 +767,8 @@ void menu_entry_frame_execute(ObMenuEntryFrame *self, guint state)
|
||||||
|
|
||||||
if (func)
|
if (func)
|
||||||
func(entry, state, data);
|
func(entry, state, data);
|
||||||
else {
|
else
|
||||||
GSList *it;
|
action_run(acts, client, state);
|
||||||
|
|
||||||
for (it = acts; it; it = g_slist_next(it))
|
|
||||||
action_run(it->data, client, state);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -167,8 +167,7 @@ static gboolean fire_binding(ObMouseAction a, ObFrameContext context,
|
||||||
/* if not bound, then nothing to do! */
|
/* if not bound, then nothing to do! */
|
||||||
if (it == NULL) return FALSE;
|
if (it == NULL) return FALSE;
|
||||||
|
|
||||||
for (it = b->actions[a]; it; it = it->next)
|
action_run_mouse(b->actions[a], c, state, button, x, y);
|
||||||
action_run_mouse(it->data, c, state, button, x, y);
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue