From e6aadd60261c8913e8f8c155c9c2ccea5c5d5ffc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ant=C3=B3nio=20Fernandes?= Date: Tue, 7 Nov 2017 13:37:19 +0000 Subject: [PATCH] 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 1de1b4b6ac..c284a675a8 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); -- GitLab