mirror of
https://gitlab.gnome.org/GNOME/nautilus
synced 2024-10-02 14:03:39 +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)
|
guint id)
|
||||||
{
|
{
|
||||||
NautilusFilesViewPrivate *priv = nautilus_files_view_get_instance_private (self);
|
NautilusFilesViewPrivate *priv = nautilus_files_view_get_instance_private (self);
|
||||||
|
NautilusMode mode = nautilus_window_slot_get_mode (priv->slot);
|
||||||
|
|
||||||
switch (id)
|
switch (id)
|
||||||
{
|
{
|
||||||
case NAUTILUS_VIEW_GRID_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));
|
gtk_overlay_set_child (GTK_OVERLAY (priv->overlay), GTK_WIDGET (priv->list_base));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -44,7 +44,9 @@ struct _NautilusListBasePrivate
|
||||||
GtkWidget *overlay;
|
GtkWidget *overlay;
|
||||||
GtkWidget *scrolled_window;
|
GtkWidget *scrolled_window;
|
||||||
|
|
||||||
|
gboolean dnd_disabled;
|
||||||
gboolean single_click_mode;
|
gboolean single_click_mode;
|
||||||
|
|
||||||
gboolean activate_on_release;
|
gboolean activate_on_release;
|
||||||
gboolean deny_background_click;
|
gboolean deny_background_click;
|
||||||
|
|
||||||
|
@ -424,6 +426,11 @@ on_item_drag_prepare (GtkDragSource *source,
|
||||||
GtkBitsetIter iter;
|
GtkBitsetIter iter;
|
||||||
guint i;
|
guint i;
|
||||||
|
|
||||||
|
if (priv->dnd_disabled)
|
||||||
|
{
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
/* Anticipate selection, if necessary, for dragging the clicked item. */
|
/* Anticipate selection, if necessary, for dragging the clicked item. */
|
||||||
select_single_item_if_not_selected (self, cell);
|
select_single_item_if_not_selected (self, cell);
|
||||||
|
|
||||||
|
@ -607,6 +614,12 @@ on_item_drag_enter (GtkDropTarget *target,
|
||||||
/* Reset action cache. */
|
/* Reset action cache. */
|
||||||
priv->drag_item_action = 0;
|
priv->drag_item_action = 0;
|
||||||
|
|
||||||
|
if (priv->dnd_disabled)
|
||||||
|
{
|
||||||
|
gtk_drop_target_reject (target);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
item = nautilus_view_cell_get_item (cell);
|
item = nautilus_view_cell_get_item (cell);
|
||||||
if (item == NULL)
|
if (item == NULL)
|
||||||
{
|
{
|
||||||
|
@ -733,6 +746,12 @@ on_view_drag_enter (GtkDropTarget *target,
|
||||||
NautilusFile *dest_file = nautilus_list_base_get_directory_as_file (self);
|
NautilusFile *dest_file = nautilus_list_base_get_directory_as_file (self);
|
||||||
const GValue *value;
|
const GValue *value;
|
||||||
|
|
||||||
|
if (priv->dnd_disabled)
|
||||||
|
{
|
||||||
|
gtk_drop_target_reject (target);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
value = gtk_drop_target_get_value (target);
|
value = gtk_drop_target_get_value (target);
|
||||||
priv->drag_view_action = get_preferred_action (dest_file, value);
|
priv->drag_view_action = get_preferred_action (dest_file, value);
|
||||||
if (priv->drag_view_action == 0)
|
if (priv->drag_view_action == 0)
|
||||||
|
@ -1362,6 +1381,14 @@ nautilus_list_base_setup_gestures (NautilusListBase *self)
|
||||||
priv->view_drop_target = drop_target;
|
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:
|
* nautilus_list_base_get_backing_item:
|
||||||
*
|
*
|
||||||
|
|
|
@ -50,6 +50,7 @@ struct _NautilusListBaseClass
|
||||||
NautilusDirectory *directory);
|
NautilusDirectory *directory);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
void nautilus_list_base_disable_dnd (NautilusListBase *self);
|
||||||
NautilusViewItem *nautilus_list_base_get_backing_item (NautilusListBase *self);
|
NautilusViewItem *nautilus_list_base_get_backing_item (NautilusListBase *self);
|
||||||
GtkWidget *nautilus_list_base_get_selected_item_ui (NautilusListBase *self);
|
GtkWidget *nautilus_list_base_get_selected_item_ui (NautilusListBase *self);
|
||||||
GVariant *nautilus_list_base_get_sort_state (NautilusListBase *self);
|
GVariant *nautilus_list_base_get_sort_state (NautilusListBase *self);
|
||||||
|
|
Loading…
Reference in a new issue