summaryrefslogtreecommitdiff
path: root/openbox/action.c
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2003-09-26 18:02:39 +0000
committerDana Jansens <danakj@orodu.net>2003-09-26 18:02:39 +0000
commit54b8eb3bf321190702b0515502e98c9287e6221b (patch)
treef87b157dde7cea40d53029fc7f0cc374883c8d69 /openbox/action.c
parent31b2dffbbe4ba8528b3562e3aa239be8e430bb47 (diff)
bring back action_run_string,
use action_run_string for running actions from other actions
Diffstat (limited to 'openbox/action.c')
-rw-r--r--openbox/action.c46
1 files changed, 22 insertions, 24 deletions
diff --git a/openbox/action.c b/openbox/action.c
index 8a1a7d27..9d2554f5 100644
--- a/openbox/action.c
+++ b/openbox/action.c
@@ -926,6 +926,20 @@ void action_run_list(GSList *acts, ObClient *c, ObFrameContext context,
}
}
+void action_run_string(const gchar *name, struct _ObClient *c)
+{
+ ObAction *a;
+ GSList *l;
+
+ a = action_from_string(name, OB_USER_ACTION_NONE);
+ g_assert(a);
+
+ l = g_slist_append(NULL, a);
+
+ action_run(l, c, 0);
+}
+
+void action_execute(union ActionData *data)
{
GError *e = NULL;
char *cmd;
@@ -985,15 +999,7 @@ void action_raiselower(union ActionData *data)
}
}
- if (raise) {
- client_action_start(data);
- stacking_raise(CLIENT_AS_WINDOW(c));
- client_action_end(data);
- } else {
- client_action_start(data);
- stacking_lower(CLIENT_AS_WINDOW(c));
- client_action_end(data);
- }
+ action_run_string((raise ? "Raise" : "Lower"), c);
}
void action_raise(union ActionData *data)
@@ -1005,26 +1011,18 @@ void action_raise(union ActionData *data)
void action_unshaderaise(union ActionData *data)
{
- if (data->client.any.c->shaded) {
- client_action_start(data);
- client_shade(data->client.any.c, FALSE);
- client_action_end(data);
- } else {
- client_action_start(data);
- stacking_raise(CLIENT_AS_WINDOW(data->client.any.c));
- client_action_end(data);
- }
+ if (data->client.any.c->shaded)
+ action_run_string("Unshade", data->client.any.c);
+ else
+ action_run_string("Raise", data->client.any.c);
}
void action_shadelower(union ActionData *data)
{
if (data->client.any.c->shaded)
- stacking_lower(CLIENT_AS_WINDOW(data->client.any.c));
- else {
- client_action_start(data);
- client_shade(data->client.any.c, TRUE);
- client_action_end(data);
- }
+ action_run_string("Lower", data->client.any.c);
+ else
+ action_run_string("Shade", data->client.any.c);
}
void action_lower(union ActionData *data)