g_set_prgname(argv[0]);
+ session_startup(&argc, &argv);
+
/* parse out command line args */
parse_args(argc, argv);
ob_main_loop_signal_add(ob_main_loop, SIGHUP, signal_handler, NULL, NULL);
ob_main_loop_signal_add(ob_main_loop, SIGPIPE, signal_handler, NULL, NULL);
- session_startup(&argc, &argv);
-
ob_screen = DefaultScreen(ob_display);
ob_rr_inst = RrInstanceNew(ob_display, ob_screen);
if (screen_annex()) { /* it will be ours! */
do {
- event_startup(reconfigure);
- grab_startup(reconfigure);
- /* focus_backup is used for stacking, so this needs to come before
- anything that calls stacking_add */
- focus_startup(reconfigure);
- window_startup(reconfigure);
- sn_startup(reconfigure);
-
{
ObParseInst *i;
xmlDocPtr doc;
/* load the theme specified in the rc file */
{
RrTheme *theme;
- if ((theme = RrThemeNew(ob_rr_inst, config_theme)))
+ if ((theme = RrThemeNew(ob_rr_inst, config_theme))) {
+ RrThemeFree(ob_rr_theme);
ob_rr_theme = theme;
+ }
if (ob_rr_theme == NULL)
ob_exit_with_error("Unable to load a theme.");
}
- moveresize_startup(reconfigure);
+ event_startup(reconfigure);
+ grab_startup(reconfigure);
+ /* focus_backup is used for stacking, so this needs to come before
+ anything that calls stacking_add */
+ focus_startup(reconfigure);
+ window_startup(reconfigure);
+ sn_startup(reconfigure);
screen_startup(reconfigure);
group_startup(reconfigure);
client_startup(reconfigure);
dock_startup(reconfigure);
+ moveresize_startup(reconfigure);
keyboard_startup(reconfigure);
mouse_startup(reconfigure);
menu_startup(reconfigure);
menu_shutdown(reconfigure);
mouse_shutdown(reconfigure);
keyboard_shutdown(reconfigure);
+ moveresize_shutdown(reconfigure);
dock_shutdown(reconfigure);
client_shutdown(reconfigure);
group_shutdown(reconfigure);
screen_shutdown(reconfigure);
focus_shutdown(reconfigure);
- moveresize_shutdown(reconfigure);
sn_shutdown(reconfigure);
window_shutdown(reconfigure);
grab_shutdown(reconfigure);
gchar *ob_expand_tilde(const gchar *f)
{
gchar **spl;
- gchar *ret, *mid;
+ gchar *ret;
if (!f)
return NULL;
spl = g_strsplit(f, "~", 0);
- mid = g_strconcat(g_get_home_dir(), G_DIR_SEPARATOR_S, NULL);
- ret = g_strjoinv(mid, spl);
- g_free(mid);
+ ret = g_strjoinv(g_get_home_dir(), spl);
g_strfreev(spl);
return ret;
}