Mercurial > geeqie
diff src/rcfile.c @ 1463:25168240a247
added function to reload external editors at any time
eliminated init_after_global_options()
author | nadvornik |
---|---|
date | Fri, 20 Mar 2009 09:46:35 +0000 |
parents | e015b6573d36 |
children | 1b3751ac4743 |
line wrap: on
line diff
--- a/src/rcfile.c Thu Mar 19 22:58:28 2009 +0000 +++ b/src/rcfile.c Fri Mar 20 09:46:35 2009 +0000 @@ -775,8 +775,7 @@ struct _GQParserData { GList *parse_func_stack; - gboolean startup; /* reading config for the first time - add commandline and call init_after_global_options() */ - gboolean global_found; + gboolean startup; /* reading config for the first time - add commandline and defaults */ }; @@ -816,8 +815,8 @@ static void options_parse_filter_end(GQParserData *parser_data, GMarkupParseContext *context, const gchar *element_name, gpointer data, GError **error) { - if (!parser_data->startup) filter_rebuild(); - /* else this is called in init_after_global_options */ + if (parser_data->startup) filter_add_defaults(); + filter_rebuild(); } static void options_parse_keyword_end(GQParserData *parser_data, GMarkupParseContext *context, const gchar *element_name, gpointer data, GError **error) @@ -882,6 +881,12 @@ } } +static void options_parse_global_end(GQParserData *parser_data, GMarkupParseContext *context, const gchar *element_name, gpointer data, GError **error) +{ + /* on startup there are no layout windows and this just loads the editors */ + layout_editors_reload_all(); +} + static void options_parse_pane_exif(GQParserData *parser_data, GMarkupParseContext *context, const gchar *element_name, const gchar **attribute_names, const gchar **attribute_values, gpointer data, GError **error) { GtkWidget *pane = data; @@ -990,17 +995,10 @@ if (g_ascii_strcasecmp(element_name, "global") == 0) { load_global_params(attribute_names, attribute_values); - options_parse_func_push(parser_data, options_parse_global, NULL, NULL); + options_parse_func_push(parser_data, options_parse_global, options_parse_global_end, NULL); return; } - if (parser_data->startup && !parser_data->global_found) - { - DEBUG_1(" global end"); - parser_data->global_found = TRUE; - init_after_global_options(); - } - if (g_ascii_strcasecmp(element_name, "layout") == 0) { LayoutWindow *lw;