window-slot: Always select file to activate

The `.pending_scroll_to` file is only ever relevant if we don't set a
`.pending_selection`. This only ever happens when we are asked to
handle a file which extracts.

In that case, there is no reason not to additionally select it as well.
The extracted files are going to be selected afterwards anyway.

This allows us remove some now-dead code. There is no optimization
here though, because nautilus_files_view_call_set_selection() runs
a linear search not unlike nautilus_view_model_find().
This commit is contained in:
António Fernandes 2024-01-11 13:26:29 +00:00
parent 5304523401
commit c93c320d58
3 changed files with 2 additions and 40 deletions

View file

@ -1116,21 +1116,6 @@ nautilus_files_view_get_view_id (NautilusView *view)
return nautilus_list_base_get_view_info (NAUTILUS_LIST_BASE (view)).view_id;
}
void
nautilus_files_view_scroll_to_file (NautilusFilesView *self,
const char *uri)
{
NautilusFilesViewPrivate *priv = nautilus_files_view_get_instance_private (self);
g_autoptr (NautilusFile) file = nautilus_file_get_existing_by_uri (uri);
NautilusViewItem *item = nautilus_view_model_get_item_for_file (priv->model, file);
g_return_if_fail (item != NULL);
guint i = nautilus_view_model_find (priv->model, item);
nautilus_list_base_set_cursor (NAUTILUS_LIST_BASE (self), i, FALSE, TRUE);
}
static GList *
nautilus_files_view_get_selection (NautilusView *view)
{

View file

@ -179,9 +179,6 @@ void nautilus_files_view_preview_selection_event (NautilusFilesV
GtkDirectionType direction);
void nautilus_files_view_stop_loading (NautilusFilesView *view);
void nautilus_files_view_scroll_to_file (NautilusFilesView *view,
const char *uri);
void nautilus_files_view_update_context_menus (NautilusFilesView *view);
void nautilus_files_view_update_toolbar_menus (NautilusFilesView *view);
void nautilus_files_view_update_actions_state (NautilusFilesView *view);

View file

@ -131,7 +131,6 @@ struct _NautilusWindowSlot
GFile *pending_location;
NautilusLocationChangeType location_change_type;
guint location_change_distance;
char *pending_scroll_to;
GList *pending_selection;
NautilusFile *pending_file_to_activate;
NautilusFile *determine_view_file;
@ -1727,19 +1726,15 @@ handle_regular_file_if_needed (NautilusWindowSlot *self,
g_clear_pointer (&self->pending_selection, nautilus_file_list_free);
g_clear_object (&self->pending_location);
g_clear_object (&self->pending_file_to_activate);
g_free (self->pending_scroll_to);
self->pending_location = nautilus_file_get_parent_location (file);
if (nautilus_mime_file_extracts (file))
{
self->pending_file_to_activate = nautilus_file_ref (file);
}
else
{
self->pending_selection = g_list_prepend (NULL, nautilus_file_ref (file));
}
self->pending_selection = g_list_prepend (NULL, nautilus_file_ref (file));
self->determine_view_file = nautilus_file_ref (parent_file);
self->pending_scroll_to = nautilus_file_get_uri (file);
nautilus_file_invalidate_all_attributes (self->determine_view_file);
nautilus_file_call_when_ready (self->determine_view_file,
@ -2033,12 +2028,6 @@ end_location_change (NautilusWindowSlot *self)
nautilus_window_slot_set_allow_stop (self, FALSE);
/* Now we can free details->pending_scroll_to, since the load_complete
* callback already has been emitted.
*/
g_free (self->pending_scroll_to);
self->pending_scroll_to = NULL;
free_location_change (self);
}
@ -2050,10 +2039,6 @@ free_location_change (NautilusWindowSlot *self)
nautilus_file_list_free (self->pending_selection);
self->pending_selection = NULL;
/* Don't free details->pending_scroll_to, since thats needed until
* the load_complete callback.
*/
if (self->mount_cancellable != NULL)
{
g_cancellable_cancel (self->mount_cancellable);
@ -2547,11 +2532,6 @@ view_ended_loading (NautilusWindowSlot *self,
{
if (view == self->content_view)
{
if (NAUTILUS_IS_FILES_VIEW (view) && self->pending_scroll_to != NULL)
{
nautilus_files_view_scroll_to_file (NAUTILUS_FILES_VIEW (self->content_view), self->pending_scroll_to);
}
end_location_change (self);
}