From: Mikael Magnusson Date: Sun, 2 Mar 2008 18:41:32 +0000 (+0100) Subject: Merge branch 'backport' into work X-Git-Url: https://git.dogcows.com/gitweb?a=commitdiff_plain;h=9676757a08b3e2e508c47f7795326bda8e54dc53;hp=-c;p=chaz%2Fopenbox Merge branch 'backport' into work Conflicts: openbox/actions/desktop.c openbox/actions/if.c --- 9676757a08b3e2e508c47f7795326bda8e54dc53 diff --combined openbox/actions/desktop.c index 37268bba,142fec51..d5535f6c --- a/openbox/actions/desktop.c +++ b/openbox/actions/desktop.c @@@ -26,8 -26,10 +26,8 @@@ typedef struct gboolean follow; } Options; -static gpointer setup_go_func(ObParseInst *i, xmlDocPtr doc, - xmlNodePtr node); -static gpointer setup_send_func(ObParseInst *i, xmlDocPtr doc, - xmlNodePtr node); +static gpointer setup_go_func(xmlNodePtr node); +static gpointer setup_send_func(xmlNodePtr node); static gboolean run_func(ObActionsData *data, gpointer options); void action_desktop_startup(void) @@@ -38,7 -40,8 +38,7 @@@ NULL, NULL); } -static gpointer setup_go_func(ObParseInst *i, xmlDocPtr doc, - xmlNodePtr node) +static gpointer setup_go_func(xmlNodePtr node) { xmlNodePtr n; Options *o; @@@ -50,8 -53,8 +50,8 @@@ /* wrap by default - it's handy! */ o->rel.wrap = TRUE; - if ((n = parse_find_node("to", node))) { - gchar *s = parse_string(doc, n); + if ((n = obt_parse_find_node(node, "to"))) { + gchar *s = obt_parse_node_string(n); if (!g_ascii_strcasecmp(s, "last")) o->type = LAST; else if (!g_ascii_strcasecmp(s, "next")) { @@@ -86,28 -89,29 +86,28 @@@ } else { o->type = ABSOLUTE; - o->abs.desktop = obt_parse_node_int(n) - 1; + o->abs.desktop = atoi(s) - 1; } g_free(s); } - if ((n = parse_find_node("wrap", node))) - o->rel.wrap = parse_bool(doc, n); + if ((n = obt_parse_find_node(node, "wrap"))) + o->rel.wrap = obt_parse_node_bool(n); return o; } -static gpointer setup_send_func(ObParseInst *i, xmlDocPtr doc, - xmlNodePtr node) +static gpointer setup_send_func(xmlNodePtr node) { xmlNodePtr n; Options *o; - o = setup_go_func(i, doc, node); + o = setup_go_func(node); o->send = TRUE; o->follow = TRUE; - if ((n = parse_find_node("follow", node))) - o->follow = parse_bool(doc, n); + if ((n = obt_parse_find_node(node, "follow"))) + o->follow = obt_parse_node_bool(n); return o; } diff --combined openbox/actions/if.c index 63a7fbcd,4c989664..833bdd3a --- a/openbox/actions/if.c +++ b/openbox/actions/if.c @@@ -23,77 -23,81 +23,77 @@@ typedef struct GSList *elseacts; } Options; -static gpointer setup_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node); +static gpointer setup_func(xmlNodePtr node); static void free_func(gpointer options); static gboolean run_func(ObActionsData *data, gpointer options); void action_if_startup(void) { - actions_register("If", - setup_func, - free_func, - run_func, - NULL, NULL); + actions_register("If", setup_func, free_func, run_func, NULL, NULL); } -static gpointer setup_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node) +static gpointer setup_func(xmlNodePtr node) { xmlNodePtr n; Options *o; o = g_new0(Options, 1); - if ((n = parse_find_node("shaded", node))) { - if (parse_bool(doc, n)) + if ((n = obt_parse_find_node(node, "shaded"))) { + if (obt_parse_node_bool(n)) o->shaded_on = TRUE; else o->shaded_off = TRUE; } - if ((n = parse_find_node("maximized", node))) { - if (parse_bool(doc, n)) + if ((n = obt_parse_find_node(node, "maximized"))) { + if (obt_parse_node_bool(n)) o->maxfull_on = TRUE; else o->maxfull_off = TRUE; } - if ((n = parse_find_node("maximizedhorizontal", node))) { - if (parse_bool(doc, n)) + if ((n = obt_parse_find_node(node, "maximizedhorizontal"))) { + if (obt_parse_node_bool(n)) o->maxhorz_on = TRUE; else o->maxhorz_off = TRUE; } - if ((n = parse_find_node("maximizedvertical", node))) { - if (parse_bool(doc, n)) + if ((n = obt_parse_find_node(node, "maximizedvertical"))) { + if (obt_parse_node_bool(n)) o->maxvert_on = TRUE; else o->maxvert_off = TRUE; } - if ((n = parse_find_node("iconified", node))) { - if (parse_bool(doc, n)) + if ((n = obt_parse_find_node(node, "iconified"))) { + if (obt_parse_node_bool(n)) o->iconic_on = TRUE; else o->iconic_off = TRUE; } - if ((n = parse_find_node("focused", node))) { - if (parse_bool(doc, n)) + if ((n = obt_parse_find_node(node, "focused"))) { + if (obt_parse_node_bool(n)) o->focused = TRUE; else o->unfocused = TRUE; } - if ((n = parse_find_node("then", node))) { + if ((n = obt_parse_find_node(node, "then"))) { xmlNodePtr m; - m = parse_find_node("action", n->xmlChildrenNode); + m = obt_parse_find_node(n->children, "action"); while (m) { - ObActionsAct *action = actions_parse(i, doc, m); + ObActionsAct *action = actions_parse(m); - if (action) o->thenacts = g_slist_prepend(o->thenacts, action); + if (action) o->thenacts = g_slist_append(o->thenacts, action); - m = parse_find_node("action", m->next); + m = obt_parse_find_node(m->next, "action"); } } - if ((n = parse_find_node("else", node))) { + if ((n = obt_parse_find_node(node, "else"))) { xmlNodePtr m; - m = parse_find_node("action", n->xmlChildrenNode); + m = obt_parse_find_node(n->children, "action"); while (m) { - ObActionsAct *action = actions_parse(i, doc, m); + ObActionsAct *action = actions_parse(m); - if (action) o->elseacts = g_slist_prepend(o->elseacts, action); + if (action) o->elseacts = g_slist_append(o->elseacts, action); - m = parse_find_node("action", m->next); + m = obt_parse_find_node(m->next, "action"); } } @@@ -104,15 -108,6 +104,15 @@@ static void free_func(gpointer options { Options *o = options; + while (o->thenacts) { + actions_act_unref(o->thenacts->data); + o->thenacts = g_slist_delete_link(o->thenacts, o->thenacts); + } + while (o->elseacts) { + actions_act_unref(o->elseacts->data); + o->elseacts = g_slist_delete_link(o->elseacts, o->elseacts); + } + g_free(o); }