From cf478381b3e386dc0478403cf1a73b4d3ec6fa61 Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Fri, 22 Jun 2007 14:35:51 +0000 Subject: [PATCH] add the iconify action --- Makefile.am | 1 + openbox/action.c | 7 ------- openbox/actions/all.c | 1 + openbox/actions/all.h | 1 + openbox/actions/iconify.c | 24 ++++++++++++++++++++++++ 5 files changed, 27 insertions(+), 7 deletions(-) create mode 100644 openbox/actions/iconify.c diff --git a/Makefile.am b/Makefile.am index 8f2c7aa0..03b94809 100644 --- a/Makefile.am +++ b/Makefile.am @@ -163,6 +163,7 @@ openbox_openbox_SOURCES = \ openbox/actions/execute.c \ openbox/actions/exit.c \ openbox/actions/focus.c \ + openbox/actions/iconify.c \ openbox/actions/lower.c \ openbox/actions/move.c \ openbox/actions/raise.c \ diff --git a/openbox/action.c b/openbox/action.c index cf1ba86f..5393bb8a 100644 --- a/openbox/action.c +++ b/openbox/action.c @@ -1010,13 +1010,6 @@ void action_run_string(const gchar *name, struct _ObClient *c, Time time) action_run(l, c, 0, time); } -void action_iconify(union ActionData *data) -{ - client_action_start(data); - client_iconify(data->client.any.c, TRUE, TRUE, FALSE); - client_action_end(data, config_focus_under_mouse); -} - void action_unshaderaise(union ActionData *data) { if (data->client.any.c->shaded) diff --git a/openbox/actions/all.c b/openbox/actions/all.c index 3b1fb5fe..101cc75f 100644 --- a/openbox/actions/all.c +++ b/openbox/actions/all.c @@ -18,4 +18,5 @@ void action_all_startup() action_lower_startup(); action_raiselower_startup(); action_unfocus_startup(); + action_iconify_startup(); } diff --git a/openbox/actions/all.h b/openbox/actions/all.h index 69f2a589..0b6813eb 100644 --- a/openbox/actions/all.h +++ b/openbox/actions/all.h @@ -19,5 +19,6 @@ void action_raise_startup(); void action_lower_startup(); void action_raiselower_startup(); void action_unfocus_startup(); +void action_iconify_startup(); #endif diff --git a/openbox/actions/iconify.c b/openbox/actions/iconify.c new file mode 100644 index 00000000..b82684ea --- /dev/null +++ b/openbox/actions/iconify.c @@ -0,0 +1,24 @@ +#include "openbox/actions.h" +#include "openbox/client.h" + +static gboolean run_func(ObActionsData *data, gpointer options); + +void action_iconify_startup() +{ + actions_register("Iconify", + NULL, NULL, + run_func, + NULL, NULL); +} + +/* Always return FALSE because its not interactive */ +static gboolean run_func(ObActionsData *data, gpointer options) +{ + if (data->client) { + actions_client_move(data, TRUE); + client_iconify(data->client, TRUE, TRUE, FALSE); + actions_client_move(data, FALSE); + } + + return FALSE; +} -- 2.45.2