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:
parent
c6f28cbb0e
commit
df76ccad24
|
@ -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));
|
||||
}
|
||||
|
||||
|
|
|
@ -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:
|
||||
*
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue
Block a user