Fix #939: Ctrl-click inside of a block selection results in whole selection being...
authorColin Clark <colin.clark@cclark.uk>
Sun, 9 Jan 2022 10:10:50 +0000 (10:10 +0000)
committerColin Clark <colin.clark@cclark.uk>
Sun, 9 Jan 2022 10:10:50 +0000 (10:10 +0000)
https://github.com/BestImageViewer/geeqie/issues/939

src/view_file/view_file_list.c

index 8ae57c8..83a483d 100644 (file)
@@ -798,16 +798,17 @@ static gboolean vflist_select_cb(GtkTreeSelection *selection, GtkTreeModel *stor
        GtkTreeIter iter;
        GtkTreePath *cursor_path;
 
-       gtk_tree_view_get_cursor(GTK_TREE_VIEW(vf->listview), &cursor_path, NULL);
-       if (cursor_path)
-               {
-               gtk_tree_model_get_iter(store, &iter, cursor_path);
-               gtk_tree_model_get(store, &iter, FILE_COLUMN_POINTER, &VFLIST(vf)->select_fd, -1);
-               gtk_tree_path_free(cursor_path);
-               }
-       else
+       VFLIST(vf)->select_fd = NULL;
+
+       if (!path_currently_selected && gtk_tree_model_get_iter(store, &iter, tpath))
                {
-               VFLIST(vf)->select_fd = NULL;
+               gtk_tree_view_get_cursor(GTK_TREE_VIEW(vf->listview), &cursor_path, NULL);
+               if (cursor_path)
+                       {
+                       gtk_tree_model_get_iter(store, &iter, cursor_path);
+                       gtk_tree_model_get(store, &iter, FILE_COLUMN_POINTER, &VFLIST(vf)->select_fd, -1);
+                       gtk_tree_path_free(cursor_path);
+                       }
                }
 
        if (vf->layout &&