diff src/rcfile.c @ 1317:cd7204a18f14

simplified and improved bar configuration
author nadvornik
date Tue, 24 Feb 2009 20:34:39 +0000
parents c1d108ab3388
children 055ed09d5a03
line wrap: on
line diff
--- a/src/rcfile.c	Tue Feb 24 18:00:45 2009 +0000
+++ b/src/rcfile.c	Tue Feb 24 20:34:39 2009 +0000
@@ -877,9 +877,8 @@
 	LayoutWindow *lw = data;
 	if (g_ascii_strcasecmp(element_name, "bar") == 0)
 		{
-		if (lw->bar) 
-			layout_bar_close(lw);
-		layout_bar_new(lw, FALSE);
+		GtkWidget *bar = bar_new_from_config(lw->utility_box, attribute_names, attribute_values);
+		layout_bar_set(lw, bar);
 		options_parse_func_push(parser_data, options_parse_bar, NULL, lw->bar);
 		}
 	else
@@ -889,6 +888,12 @@
 		}
 }
 
+static void options_parse_layout_end(GQParserData *parser_data, GMarkupParseContext *context, const gchar *element_name, gpointer data, GError **error)
+{
+	LayoutWindow *lw = data;
+	layout_util_sync(lw);
+}
+
 static void options_parse_toplevel(GQParserData *parser_data, GMarkupParseContext *context, const gchar *element_name, const gchar **attribute_names, const gchar **attribute_values, gpointer data, GError **error)
 {
 	if (g_ascii_strcasecmp(element_name, "global") == 0)
@@ -909,7 +914,7 @@
 		{
 		LayoutWindow *lw;
 		lw = layout_new_from_config(attribute_names, attribute_values, parser_data->startup);
-		options_parse_func_push(parser_data, options_parse_layout, NULL, lw);
+		options_parse_func_push(parser_data, options_parse_layout, options_parse_layout_end, lw);
 		}
 	else
 		{