Mercurial > geeqie
changeset 1449:76da5ba54a1d
call the notify function just once when the keywords are pushed to the
textarea
author | nadvornik |
---|---|
date | Sun, 15 Mar 2009 22:46:25 +0000 |
parents | 89dedc61b1bd |
children | ba0cd2792260 |
files | src/bar_keywords.c |
diffstat | 1 files changed, 10 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/bar_keywords.c Sun Mar 15 20:16:20 2009 +0000 +++ b/src/bar_keywords.c Sun Mar 15 22:46:25 2009 +0000 @@ -53,6 +53,7 @@ return list; } +/* the "changed" signal should be blocked before calling this */ static void keyword_list_push(GtkWidget *textview, GList *list) { GtkTextBuffer *buffer; @@ -279,6 +280,8 @@ GtkTreeIter child_iter; GtkTreeModel *keyword_tree; + GtkTextBuffer *keyword_buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(pkd->keyword_view)); + model = gtk_tree_view_get_model(GTK_TREE_VIEW(pkd->keyword_treeview)); tpath = gtk_tree_path_new_from_string(path); @@ -297,11 +300,16 @@ keyword_tree_set(keyword_tree, &child_iter, &list); else keyword_tree_reset(keyword_tree, &child_iter, &list); - + + g_signal_handlers_block_by_func(keyword_buffer, bar_pane_keywords_changed, pkd); keyword_list_push(pkd->keyword_view, list); string_list_free(list); + g_signal_handlers_unblock_by_func(keyword_buffer, bar_pane_keywords_changed, pkd); + + /* call this just once in the end */ + bar_pane_keywords_changed(keyword_buffer, pkd); /* - keyword_list_push triggers bar_pane_keywords_change which calls bar_keyword_tree_sync, no need to do it again + bar_pane_keywords_change calls bar_keyword_tree_sync, no need to do it again bar_keyword_tree_sync(pkd); */ }