X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Fopenbox.c;h=7221556e1fb62aa94bb11d00afd6f8465d956014;hb=d394d8c613b8b85cd3ee92b6114716e57f8d03ce;hp=eb7934e0541ba5f8494680b44d43c245a46a8dcb;hpb=7ea56abf05b9e6cd4e806dbfa1146562378edc7b;p=chaz%2Fopenbox diff --git a/openbox/openbox.c b/openbox/openbox.c index eb7934e0..7221556e 100644 --- a/openbox/openbox.c +++ b/openbox/openbox.c @@ -229,6 +229,8 @@ gint main(gint argc, gchar **argv) if (screen_annex()) { /* it will be ours! */ do { + ObPrompt *xmlprompt = NULL; + modkeys_startup(reconfigure); /* get the keycodes for keys we use */ @@ -323,7 +325,6 @@ gint main(gint argc, gchar **argv) grab_startup(reconfigure); group_startup(reconfigure); ping_startup(reconfigure); - prompt_startup(reconfigure); client_startup(reconfigure); dock_startup(reconfigure); moveresize_startup(reconfigure); @@ -331,6 +332,7 @@ gint main(gint argc, gchar **argv) mouse_startup(reconfigure); menu_frame_startup(reconfigure); menu_startup(reconfigure); + prompt_startup(reconfigure); if (!reconfigure) { guint32 xid; @@ -368,15 +370,36 @@ gint main(gint argc, gchar **argv) reconfigure = FALSE; ob_set_state(OB_STATE_RUNNING); + + /* look for parsing errors */ + { + xmlErrorPtr e = xmlGetLastError(); + if (e) { + gchar *m; + + m = g_strdup_printf(_("One or more XML syntax errors were found while parsing the Openbox configuration files. See stdout for more information. The last error seen was in file \"%s\" line %d, with message: %s"), e->file, e->line, e->message); + xmlprompt = + prompt_show_message(m, _("Openbox Syntax Error"), _("Close")); + g_free(m); + xmlResetError(e); + } + } + ob_main_loop_run(ob_main_loop); ob_set_state(reconfigure ? OB_STATE_RECONFIGURING : OB_STATE_EXITING); + if (xmlprompt) { + prompt_unref(xmlprompt); + xmlprompt = NULL; + } + if (!reconfigure) { dock_remove_all(); client_unmanage_all(); } + prompt_shutdown(reconfigure); menu_shutdown(reconfigure); menu_frame_shutdown(reconfigure); mouse_shutdown(reconfigure); @@ -384,7 +407,6 @@ gint main(gint argc, gchar **argv) moveresize_shutdown(reconfigure); dock_shutdown(reconfigure); client_shutdown(reconfigure); - prompt_shutdown(reconfigure); ping_shutdown(reconfigure); group_shutdown(reconfigure); grab_shutdown(reconfigure);