1
0
mirror of https://gitlab.gnome.org/GNOME/nautilus synced 2024-06-30 23:46:35 +00:00

list-base: Disable DND on FileChooser mode

Drag and drop to move files should be suppressed, as described on
https://gitlab.gnome.org/Teams/Design/os-mockups/-/issues/250
This commit is contained in:
António Fernandes 2024-06-18 22:23:36 +01:00
parent c6f28cbb0e
commit df76ccad24
3 changed files with 35 additions and 0 deletions

View File

@ -9917,6 +9917,8 @@ create_inner_view (NautilusFilesView *self,
guint id)
{
NautilusFilesViewPrivate *priv = nautilus_files_view_get_instance_private (self);
NautilusMode mode = nautilus_window_slot_get_mode (priv->slot);
switch (id)
{
case NAUTILUS_VIEW_GRID_ID:
@ -9944,6 +9946,11 @@ create_inner_view (NautilusFilesView *self,
}
}
if (mode != NAUTILUS_MODE_BROWSE)
{
nautilus_list_base_disable_dnd (priv->list_base);
}
gtk_overlay_set_child (GTK_OVERLAY (priv->overlay), GTK_WIDGET (priv->list_base));
}

View File

@ -44,7 +44,9 @@ struct _NautilusListBasePrivate
GtkWidget *overlay;
GtkWidget *scrolled_window;
gboolean dnd_disabled;
gboolean single_click_mode;
gboolean activate_on_release;
gboolean deny_background_click;
@ -424,6 +426,11 @@ on_item_drag_prepare (GtkDragSource *source,
GtkBitsetIter iter;
guint i;
if (priv->dnd_disabled)
{
return NULL;
}
/* Anticipate selection, if necessary, for dragging the clicked item. */
select_single_item_if_not_selected (self, cell);
@ -607,6 +614,12 @@ on_item_drag_enter (GtkDropTarget *target,
/* Reset action cache. */
priv->drag_item_action = 0;
if (priv->dnd_disabled)
{
gtk_drop_target_reject (target);
return 0;
}
item = nautilus_view_cell_get_item (cell);
if (item == NULL)
{
@ -733,6 +746,12 @@ on_view_drag_enter (GtkDropTarget *target,
NautilusFile *dest_file = nautilus_list_base_get_directory_as_file (self);
const GValue *value;
if (priv->dnd_disabled)
{
gtk_drop_target_reject (target);
return 0;
}
value = gtk_drop_target_get_value (target);
priv->drag_view_action = get_preferred_action (dest_file, value);
if (priv->drag_view_action == 0)
@ -1362,6 +1381,14 @@ nautilus_list_base_setup_gestures (NautilusListBase *self)
priv->view_drop_target = drop_target;
}
void
nautilus_list_base_disable_dnd (NautilusListBase *self)
{
NautilusListBasePrivate *priv = nautilus_list_base_get_instance_private (self);
priv->dnd_disabled = TRUE;
}
/**
* nautilus_list_base_get_backing_item:
*

View File

@ -50,6 +50,7 @@ struct _NautilusListBaseClass
NautilusDirectory *directory);
};
void nautilus_list_base_disable_dnd (NautilusListBase *self);
NautilusViewItem *nautilus_list_base_get_backing_item (NautilusListBase *self);
GtkWidget *nautilus_list_base_get_selected_item_ui (NautilusListBase *self);
GVariant *nautilus_list_base_get_sort_state (NautilusListBase *self);