summaryrefslogtreecommitdiff
path: root/openbox/keyboard.c
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2003-09-19 17:41:05 +0000
committerDana Jansens <danakj@orodu.net>2003-09-19 17:41:05 +0000
commite5908c3f897156b13d1e7592c155bfd5ca2a82a4 (patch)
tree5e731952b26254128b7aa2ff41032bafa8f50d84 /openbox/keyboard.c
parent77d83472341493ddcf334ea1654671118c83dc35 (diff)
use the new action ru system which always runs lists of actions instead of individual ones
Diffstat (limited to 'openbox/keyboard.c')
-rw-r--r--openbox/keyboard.c15
1 files changed, 7 insertions, 8 deletions
diff --git a/openbox/keyboard.c b/openbox/keyboard.c
index 54de380c..7a74b427 100644
--- a/openbox/keyboard.c
+++ b/openbox/keyboard.c
@@ -39,7 +39,7 @@ KeyBindingTree *keyboard_firstnode;
typedef struct {
guint state;
ObClient *client;
- ObAction *action;
+ GSList *actions;
ObFrameContext context;
} ObInteractiveState;
@@ -178,7 +178,7 @@ void keyboard_interactive_grab(guint state, ObClient *client,
s->state = state;
s->client = client;
- s->action = action;
+ s->actions = g_slist_append(NULL, action);
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,
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);
interactive_states = g_slist_remove(interactive_states, s);
@@ -276,13 +277,11 @@ void keyboard_event(ObClient *client, const XEvent *e)
curpos = p;
grab_keys(TRUE);
} 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();
+
+ action_run_key(p->actions, client, e->xkey.state,
+ e->xkey.x_root, e->xkey.y_root);
}
break;
}