Branch: refs/heads/master Author: Jiří Techet techet@gmail.com Committer: GitHub noreply@github.com Date: Fri, 31 Jan 2025 21:12:49 UTC Commit: 43e12659798fabc73e1c141c84261c84b977e48f https://github.com/geany/geany/commit/43e12659798fabc73e1c141c84261c84b977e4...
Log Message: ----------- Merge pull request #4218 from techee/open_doc_warning_fix
Re-convert filter_iter after removing/re-adding iter from/to store
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).