}
}
+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;
}
}
- 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)
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)
#define action_run(a, c, s) \
action_run_list(a, c, OB_FRAME_CONTEXT_NONE, s, 0, -1, -1, FALSE, FALSE)
+void action_run_string(const gchar *name, struct _ObClient *c);
+
/* Execute */
void action_execute(union ActionData *data);
/* ActivateAction */