From: Dana Jansens Date: Thu, 19 Jul 2007 19:13:06 +0000 (-0400) Subject: replace movetoedge with movetoedge* again for 3.4 X-Git-Tag: release-3.4.3~23 X-Git-Url: http://git.openbox.org/?a=commitdiff_plain;h=1f18d434e4cbf5a6497363db9a8ee9cfe64c2731;p=dana%2Fopenbox.git replace movetoedge with movetoedge* again for 3.4 --- 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 */