summaryrefslogtreecommitdiff
path: root/openbox
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2007-07-13 11:22:34 -0400
committerDana Jansens <danakj@orodu.net>2007-07-13 11:22:34 -0400
commitbea270cac543883d0d11f870e0285c5c3ba61266 (patch)
tree58d5afddb13945617c6bf436a4b7a3d3dd5a9866 /openbox
parent1af52f6b8d3132b75eefbbf2a80f4cb3d33490ca (diff)
make omnipresent back into toggleomnipresent
Diffstat (limited to 'openbox')
-rw-r--r--openbox/actions/omnipresent.c53
1 files changed, 6 insertions, 47 deletions
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;
}