[nautilus/105-expanding-folders-crashes-nautilus] list-view: Don't display star on dummy row



commit e6aadd60261c8913e8f8c155c9c2ccea5c5d5ffc
Author: António Fernandes <antoniojpfernandes gmail com>
Date:   Tue Nov 7 13:37:19 2017 +0000

    list-view: Don't display star on dummy row
    
    If org.gnome.nautilus.list-view use-tree-view is true, folders can be
    expanded. While loading expanded folders, there is a dummy row with
    "Loading" label, which turns into "Empty" if no items are loaded. This
    row has a NULL NautilusFile.
    
    The code to display the correct star icon assumes each row represents a
    file, but the dummy row breaks this assumption, crashing nautilus when
    checking if the file is starred or unstarred.
    
    Instead, don't set a star icon unless the row represents a file. Also,
    do nothing if the cell is clicked on a dummy row.
    
    Fixes: #105

 src/nautilus-list-view.c | 18 +++++++++++++++++-
 1 file changed, 17 insertions(+), 1 deletion(-)
---
diff --git a/src/nautilus-list-view.c b/src/nautilus-list-view.c
index 1de1b4b6a..c284a675a 100644
--- a/src/nautilus-list-view.c
+++ b/src/nautilus-list-view.c
@@ -519,6 +519,13 @@ on_star_cell_renderer_clicked (GtkTreePath      *path,
     list_model = list_view->details->model;
 
     file = nautilus_list_model_file_for_path (list_model, path);
+
+    if (file == NULL)
+    {
+        /* This row is a label, not a file */
+        return;
+    }
+
     uri = nautilus_file_get_uri (file);
     selection = g_list_prepend (NULL, file);
 
@@ -1677,6 +1684,16 @@ favorite_cell_data_func (GtkTreeViewColumn *column,
                         NAUTILUS_LIST_MODEL_FILE_COLUMN, &file,
                         -1);
 
+    if (file == NULL)
+    {
+        /* This row is a label, not a file */
+        g_object_set (renderer,
+                      "icon-name", NULL,
+                      "mode", GTK_CELL_RENDERER_MODE_INERT,
+                      NULL);
+        return;
+    }
+
     uri = nautilus_file_get_uri (file);
 
     if (nautilus_tag_manager_file_is_favorite (view->details->tag_manager, uri))
@@ -2194,7 +2211,6 @@ create_and_set_up_tree_view (NautilusListView *view)
             {
                 cell = gtk_cell_renderer_pixbuf_new ();
                 g_object_set (cell,
-                              "icon-name", "non-starred-symbolic",
                               "mode", GTK_CELL_RENDERER_MODE_ACTIVATABLE,
                               NULL);
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]