From: Dana Jansens Date: Fri, 13 Jul 2007 15:22:34 +0000 (-0400) Subject: make omnipresent back into toggleomnipresent X-Git-Url: https://git.brokenzipper.com/gitweb?a=commitdiff_plain;h=bea270cac543883d0d11f870e0285c5c3ba61266;hp=1af52f6b8d3132b75eefbbf2a80f4cb3d33490ca;p=chaz%2Fopenbox make omnipresent back into toggleomnipresent --- diff --git a/openbox/actions/omnipresent.c b/openbox/actions/omnipresent.c index 92cdfb32..4f60b540 100644 --- a/openbox/actions/omnipresent.c +++ b/openbox/actions/omnipresent.c @@ -2,61 +2,20 @@ #include "openbox/client.h" #include "openbox/screen.h" -typedef struct { - gboolean toggle; - gboolean on; -} Options; - -static gpointer setup_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node); -static void free_func(gpointer options); -static gboolean run_func(ObActionsData *data, gpointer options); +static gboolean run_func_toggle(ObActionsData *data, gpointer options); void action_omnipresent_startup() { - actions_register("omnipresent", - setup_func, - free_func, - run_func, + actions_register("ToggleOmnipresent", NULL, NULL, run_func_toggle, NULL, NULL); } -static gpointer setup_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node) -{ - xmlNodePtr n; - Options *o; - - o = g_new0(Options, 1); - o->toggle = TRUE; - - if ((n = parse_find_node("state", node))) { - gchar *s = parse_string(doc, n); - if (g_ascii_strcasecmp(s, "toggle")) { - o->toggle = FALSE; - o->on = parse_bool(doc, n); - } - g_free(s); - } - - return o; -} - -static void free_func(gpointer options) -{ - Options *o = options; - - g_free(o); -} - /* Always return FALSE because its not interactive */ -static gboolean run_func(ObActionsData *data, gpointer options) +static gboolean run_func_toggle(ObActionsData *data, gpointer options) { - Options *o = options; - if (data->client) - if (o->toggle || (o->on != (data->client->desktop == DESKTOP_ALL))) - client_set_desktop(data->client, - data->client->desktop == DESKTOP_ALL ? - screen_desktop : DESKTOP_ALL, FALSE, TRUE); - + client_set_desktop(data->client, + data->client->desktop == DESKTOP_ALL ? + screen_desktop : DESKTOP_ALL, FALSE, TRUE); return FALSE; }