Skip to content

Commit

Permalink
TreeBrowser: Fix refresh from popup menu with a selected file
Browse files Browse the repository at this point in the history
Closes #1194.
  • Loading branch information
eht16 committed Sep 11, 2022
1 parent 4d08987 commit fd42f7e
Showing 1 changed file with 21 additions and 2 deletions.
23 changes: 21 additions & 2 deletions treebrowser/src/treebrowser.c
Expand Up @@ -1163,15 +1163,34 @@ static void
on_menu_refresh(GtkMenuItem *menuitem, gpointer *user_data)
{
GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview));
GtkTreeIter iter;
GtkTreeIter iter, parent_iter;
GtkTreeIter *target_iter = NULL;
GtkTreeModel *model;
gchar *uri;

if (gtk_tree_selection_get_selected(selection, &model, &iter))
{
gtk_tree_model_get(model, &iter, TREEBROWSER_COLUMN_URI, &uri, -1);
/* if a directory is selected, use it directly for treebrowser_browse()
* if a file within a directory is selected, use its parent for treebrowser_browse()
* if a file on the top level is selected, use *no* parent for treebrowser_browse() */
if (g_file_test(uri, G_FILE_TEST_IS_DIR))
treebrowser_browse(uri, &iter);
target_iter = &iter;
else
{
if (gtk_tree_model_iter_parent(model, &parent_iter, &iter))
{
g_free(uri);
gtk_tree_model_get(model, &iter, TREEBROWSER_COLUMN_URI, &uri, -1);
target_iter = &parent_iter;
}
else
{
SETPTR(uri, g_path_get_dirname(uri));
target_iter = NULL;
}
}
treebrowser_browse(uri, target_iter);
g_free(uri);
}
else
Expand Down

0 comments on commit fd42f7e

Please sign in to comment.