From 83be7514089e2b910020055488bca0b8fa5125cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ant=C3=B3nio=20Fernandes?= Date: Tue, 7 Nov 2017 15:26:54 +0000 Subject: [PATCH] list-view: Make star cell blank and inert on dummy row If org.gnome.nautilus.list-view use-tree-view is TRUE, folders can be expanded, which creates a dummy row to display the "Loading" label. 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 NULL 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 2089e6353..89e54cb09 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)) @@ -2197,7 +2214,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);