Branch: refs/heads/master Author: Jiří Techet techet@gmail.com Committer: Jiří Techet techet@gmail.com Date: Fri, 31 Jan 2025 19:48:24 UTC Commit: 6b41a0e6cdecf7656e290c8ae0c67bb1f7cb6915 https://github.com/geany/geany/commit/6b41a0e6cdecf7656e290c8ae0c67bb1f7cb69...
Log Message: ----------- Re-convert filter_iter after removing/re-adding iter from/to store
By
openfiles_remove(doc); sidebar_openfiles_add(doc);
doc->priv->iter (which is pointed to by iter) is re-created. This invalidates filter_iter which has to be re-converted from iter to avoid runtime warning.
Modified Paths: -------------- src/sidebar.c
Modified: src/sidebar.c 14 lines changed, 9 insertions(+), 5 deletions(-) =================================================================== @@ -1041,25 +1041,29 @@ void sidebar_openfiles_update(GeanyDocument *doc) { /* path has changed, so remove and re-add */ GtkTreeModel *filter_model = gtk_tree_view_get_model(GTK_TREE_VIEW(tv.tree_openfiles)); + GtkTreeSelection *treesel = gtk_tree_view_get_selection(GTK_TREE_VIEW(tv.tree_openfiles)); GtkTreeIter filter_iter; - GtkTreeSelection *treesel; gboolean sel = FALSE; gboolean have_filter_iter;
have_filter_iter = gtk_tree_model_filter_convert_child_iter_to_iter( GTK_TREE_MODEL_FILTER(filter_model), &filter_iter, iter);
if (have_filter_iter) - { - treesel = gtk_tree_view_get_selection(GTK_TREE_VIEW(tv.tree_openfiles)); sel = gtk_tree_selection_iter_is_selected(treesel, &filter_iter); - }
openfiles_remove(doc); sidebar_openfiles_add(doc);
if (sel) - gtk_tree_selection_select_iter(treesel, &filter_iter); + { + /* we need to re-convert iter->filter_iter as the original iter + * becomes invalid after removal and re-addition of doc from/to sidebar */ + have_filter_iter = gtk_tree_model_filter_convert_child_iter_to_iter( + GTK_TREE_MODEL_FILTER(filter_model), &filter_iter, iter); + if (have_filter_iter) + gtk_tree_selection_select_iter(treesel, &filter_iter); + } } g_free(fname); }
-------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).