- if (p->action->func != NULL) {
- p->action->data.any.c = focus_client;
-
- g_assert(!(p->action->func == action_move ||
- p->action->func == action_resize));
-
- if (p->action->func == action_cycle_windows) {
- p->action->data.cycle.final = FALSE;
- p->action->data.cycle.cancel = FALSE;
- }
-
- p->action->func(&p->action->data);
-
- if (p->action->func == action_cycle_windows &&
- !grabbed_key) {
- grab_keyboard(TRUE);
- grabbed_key = p;
+ GSList *it;
+ for (it = p->actions; it; it = it->next) {
+ Action *act = it->data;
+ if (act->func != NULL) {
+ act->data.any.c = focus_client;
+
+ if (act->func == action_cycle_windows) {
+ act->data.cycle.final = FALSE;
+ act->data.cycle.cancel = FALSE;
+ }
+
+ act->func(&act->data);
+
+ if (act->func == action_cycle_windows &&
+ !grabbed_key) {
+ grab_keyboard(TRUE);
+ grabbed_key = p;
+ }