From 1f18d434e4cbf5a6497363db9a8ee9cfe64c2731 Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Thu, 19 Jul 2007 15:13:06 -0400 Subject: [PATCH] replace movetoedge with movetoedge* again for 3.4 --- openbox/actions/movetoedge.c | 68 ++++++++++++++++++++---------------- 1 file changed, 37 insertions(+), 31 deletions(-) diff --git a/openbox/actions/movetoedge.c b/openbox/actions/movetoedge.c index 768783f2..f09bfd83 100644 --- a/openbox/actions/movetoedge.c +++ b/openbox/actions/movetoedge.c @@ -9,52 +9,58 @@ typedef struct { ObDirection dir; } Options; -static gpointer setup_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node); -static void free_func(gpointer options); +static gpointer setup_north_func(ObParseInst *i, xmlDocPtr doc, + xmlNodePtr node); +static gpointer setup_south_func(ObParseInst *i, xmlDocPtr doc, + xmlNodePtr node); +static gpointer setup_east_func(ObParseInst *i, xmlDocPtr doc, + xmlNodePtr node); +static gpointer setup_west_func(ObParseInst *i, xmlDocPtr doc, + xmlNodePtr node); static gboolean run_func(ObActionsData *data, gpointer options); void action_movetoedge_startup() { - actions_register("MoveToEdge", - setup_func, - free_func, - run_func, + actions_register("MoveToEdgeNorth", setup_north_func, g_free, run_func, + NULL, NULL); + actions_register("MoveToEdgeSouth", setup_south_func, g_free, run_func, + NULL, NULL); + actions_register("MoveToEdgeEast", setup_east_func, g_free, run_func, + NULL, NULL); + actions_register("MoveToEdgeWest", setup_west_func, g_free, run_func, NULL, NULL); } -static gpointer setup_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node) +static gpointer setup_north_func(ObParseInst *i, xmlDocPtr doc, + xmlNodePtr node) { - xmlNodePtr n; - Options *o; - - o = g_new0(Options, 1); + Options *o = g_new0(Options, 1); o->dir = OB_DIRECTION_NORTH; + return o; +} - if ((n = parse_find_node("direction", node))) { - gchar *s = parse_string(doc, n); - if (!g_ascii_strcasecmp(s, "north") || - !g_ascii_strcasecmp(s, "up")) - o->dir = OB_DIRECTION_NORTH; - else if (!g_ascii_strcasecmp(s, "south") || - !g_ascii_strcasecmp(s, "down")) - o->dir = OB_DIRECTION_SOUTH; - else if (!g_ascii_strcasecmp(s, "west") || - !g_ascii_strcasecmp(s, "left")) - o->dir = OB_DIRECTION_WEST; - else if (!g_ascii_strcasecmp(s, "east") || - !g_ascii_strcasecmp(s, "right")) - o->dir = OB_DIRECTION_EAST; - g_free(s); - } - +static gpointer setup_south_func(ObParseInst *i, xmlDocPtr doc, + xmlNodePtr node) +{ + Options *o = g_new0(Options, 1); + o->dir = OB_DIRECTION_SOUTH; return o; } -static void free_func(gpointer options) +static gpointer setup_east_func(ObParseInst *i, xmlDocPtr doc, + xmlNodePtr node) { - Options *o = options; + Options *o = g_new0(Options, 1); + o->dir = OB_DIRECTION_EAST; + return o; +} - g_free(o); +static gpointer setup_west_func(ObParseInst *i, xmlDocPtr doc, + xmlNodePtr node) +{ + Options *o = g_new0(Options, 1); + o->dir = OB_DIRECTION_WEST; + return o; } /* Always return FALSE because its not interactive */ -- 2.34.1