use the new action ru system which always runs lists of actions instead of individual...
authorDana Jansens <danakj@orodu.net>
Fri, 19 Sep 2003 17:41:05 +0000 (17:41 +0000)
committerDana Jansens <danakj@orodu.net>
Fri, 19 Sep 2003 17:41:05 +0000 (17:41 +0000)
openbox/keyboard.c
openbox/menuframe.c
openbox/mouse.c

index 54de380..7a74b42 100644 (file)
@@ -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;
         }
index 87b269f..de84dbf 100644 (file)
@@ -767,12 +767,8 @@ void menu_entry_frame_execute(ObMenuEntryFrame *self, guint state)
 
         if (func)
             func(entry, state, data);
-        else {
-            GSList *it;
-
-            for (it = acts; it; it = g_slist_next(it))
-                action_run(it->data, client, state);
-        }
+        else
+            action_run(acts, client, state);
     }
 }
 
index 703ea36..eb206a1 100644 (file)
@@ -167,8 +167,7 @@ static gboolean fire_binding(ObMouseAction a, ObFrameContext context,
     /* if not bound, then nothing to do! */
     if (it == NULL) return FALSE;
 
-    for (it = b->actions[a]; it; it = it->next)
-        action_run_mouse(it->data, c, state, button, x, y);
+    action_run_mouse(b->actions[a], c, state, button, x, y);
     return TRUE;
 }