mirror of
https://gitlab.gnome.org/GNOME/nautilus
synced 2024-10-12 10:52:25 +00:00
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:
parent
5304523401
commit
c93c320d58
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue