From: Dana Jansens Date: Thu, 28 Feb 2008 02:07:10 +0000 (-0500) Subject: Merge branch 'backport' into work X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fopenbox;a=commitdiff_plain;h=8bd02bf4b883fa369dd68df2053974407024ddaf Merge branch 'backport' into work Conflicts: openbox/actions/execute.c --- 8bd02bf4b883fa369dd68df2053974407024ddaf diff --cc openbox/actions/execute.c index ff73bf2b,4197109f..fa66a484 --- a/openbox/actions/execute.c +++ b/openbox/actions/execute.c @@@ -1,8 -1,8 +1,9 @@@ #include "openbox/actions.h" #include "openbox/event.h" #include "openbox/startupnotify.h" + #include "openbox/prompt.h" #include "openbox/screen.h" +#include "obt/paths.h" #include "gettext.h" #ifdef HAVE_STDLIB_H @@@ -15,9 -15,10 +16,10 @@@ typedef struct gchar *sn_name; gchar *sn_icon; gchar *sn_wmclass; + gchar *prompt; } 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); /* @@@ -48,16 -53,19 +50,19 @@@ static gpointer setup_func(xmlNodePtr n g_free(s); } - if ((n = parse_find_node("prompt", node))) - o->prompt = parse_string(doc, n); ++ if ((n = obt_parse_find_node(node, "prompt"))) ++ o->prompt = obt_parse_node_string(n); + - if ((n = parse_find_node("startupnotify", node))) { + if ((n = obt_parse_find_node(node, "startupnotify"))) { xmlNodePtr m; - if ((m = parse_find_node("enabled", n->xmlChildrenNode))) - o->sn = parse_bool(doc, m); - if ((m = parse_find_node("name", n->xmlChildrenNode))) - o->sn_name = parse_string(doc, m); - if ((m = parse_find_node("icon", n->xmlChildrenNode))) - o->sn_icon = parse_string(doc, m); - if ((m = parse_find_node("wmclass", n->xmlChildrenNode))) - o->sn_wmclass = parse_string(doc, m); + if ((m = obt_parse_find_node(n->children, "enabled"))) + o->sn = obt_parse_node_bool(m); + if ((m = obt_parse_find_node(n->children, "name"))) + o->sn_name = obt_parse_node_string(m); + if ((m = obt_parse_find_node(n->children, "icon"))) + o->sn_icon = obt_parse_node_string(m); + if ((m = obt_parse_find_node(n->children, "wmclass"))) + o->sn_wmclass = obt_parse_node_string(m); } return o; } diff --cc openbox/actions/exit.c index 662c984a,8430729b..f5af8a12 --- a/openbox/actions/exit.c +++ b/openbox/actions/exit.c @@@ -1,14 -1,38 +1,38 @@@ #include "openbox/actions.h" #include "openbox/openbox.h" + #include "openbox/prompt.h" + #include "gettext.h" + typedef struct { + gboolean prompt; + } Options; + -static gpointer setup_func(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node); ++static gpointer setup_func(xmlNodePtr node); static gboolean run_func(ObActionsData *data, gpointer options); void action_exit_startup(void) { - actions_register("Exit", - NULL, NULL, - run_func, - NULL, NULL); + actions_register("Exit", setup_func, NULL, 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("prompt", node))) - o->prompt = parse_bool(doc, n); ++ if ((n = obt_parse_find_node(node, "prompt"))) ++ o->prompt = obt_parse_node_bool(n); + + return o; + } + + static void prompt_cb(ObPrompt *p, gint result, gpointer data) + { + if (result) + ob_exit(0); + prompt_unref(p); } /* Always return FALSE because its not interactive */