summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntónio Fernandes <antoniof@gnome.org>2023-01-15 17:18:36 +0000
committerAntónio Fernandes <antoniof@gnome.org>2023-01-15 17:41:51 +0000
commitbcbfcbf70838fb25d7e9bbb887b7131ef9b67cdd (patch)
treee5c8266496b739122fa86dc9ce8463962db64c85
parente9cfb16d15a6d98829667107b7dda8a17da95382 (diff)
downloadnautilus-bcbfcbf70838fb25d7e9bbb887b7131ef9b67cdd.tar.gz
list-base: Setup cell hover controller separately
No functional change in this commit, but this is going to make it possible for each view to pick the areas which trigger the hover timeout, to be done in the next commit.
-rw-r--r--src/nautilus-grid-view.c1
-rw-r--r--src/nautilus-list-base-private.h2
-rw-r--r--src/nautilus-list-base.c7
-rw-r--r--src/nautilus-list-view.c3
4 files changed, 12 insertions, 1 deletions
diff --git a/src/nautilus-grid-view.c b/src/nautilus-grid-view.c
index 016f741ba..7a2e2f90c 100644
--- a/src/nautilus-grid-view.c
+++ b/src/nautilus-grid-view.c
@@ -496,6 +496,7 @@ setup_cell (GtkSignalListItemFactory *factory,
cell = nautilus_grid_cell_new (NAUTILUS_LIST_BASE (self));
setup_cell_common (listitem, NAUTILUS_VIEW_CELL (cell));
+ setup_cell_hover (NAUTILUS_VIEW_CELL (cell));
nautilus_grid_cell_set_caption_attributes (cell, self->caption_attributes);
}
diff --git a/src/nautilus-list-base-private.h b/src/nautilus-list-base-private.h
index fd8b525d5..1a92360f6 100644
--- a/src/nautilus-list-base-private.h
+++ b/src/nautilus-list-base-private.h
@@ -28,6 +28,8 @@ void set_directory_sort_metadata (NautilusFile *f
gboolean reversed);
void setup_cell_common (GtkListItem *listitem,
NautilusViewCell *cell);
+void setup_cell_hover (NautilusViewCell *cell);
+
void set_focus_item (NautilusListBase *self,
NautilusViewItem *item);
diff --git a/src/nautilus-list-base.c b/src/nautilus-list-base.c
index bf217aeaf..03bc6d9b0 100644
--- a/src/nautilus-list-base.c
+++ b/src/nautilus-list-base.c
@@ -929,8 +929,13 @@ setup_cell_common (GtkListItem *listitem,
g_signal_connect (drop_target, "motion", G_CALLBACK (on_item_drag_motion), cell);
g_signal_connect (drop_target, "drop", G_CALLBACK (on_item_drop), cell);
gtk_widget_add_controller (GTK_WIDGET (cell), GTK_EVENT_CONTROLLER (drop_target));
+}
+
- controller = gtk_drop_controller_motion_new ();
+void
+setup_cell_hover (NautilusViewCell *cell)
+{
+ GtkEventController *controller = gtk_drop_controller_motion_new ();
gtk_widget_add_controller (GTK_WIDGET (cell), controller);
g_signal_connect (controller, "enter", G_CALLBACK (on_item_drag_hover_enter), cell);
g_signal_connect (controller, "leave", G_CALLBACK (on_item_drag_hover_leave), cell);
diff --git a/src/nautilus-list-view.c b/src/nautilus-list-view.c
index 2cdc6f7ef..32ab01b7a 100644
--- a/src/nautilus-list-view.c
+++ b/src/nautilus-list-view.c
@@ -1128,6 +1128,7 @@ setup_name_cell (GtkSignalListItemFactory *factory,
cell = nautilus_name_cell_new (NAUTILUS_LIST_BASE (self));
setup_cell_common (listitem, cell);
+ setup_cell_hover (cell);
nautilus_name_cell_set_path (NAUTILUS_NAME_CELL (cell),
self->path_attribute_q,
@@ -1263,6 +1264,7 @@ setup_star_cell (GtkSignalListItemFactory *factory,
cell = nautilus_star_cell_new (NAUTILUS_LIST_BASE (user_data));
setup_cell_common (listitem, cell);
+ setup_cell_hover (cell);
setup_selection_click_workaround (cell);
}
@@ -1279,6 +1281,7 @@ setup_label_cell (GtkSignalListItemFactory *factory,
cell = nautilus_label_cell_new (NAUTILUS_LIST_BASE (user_data), nautilus_column);
setup_cell_common (listitem, cell);
+ setup_cell_hover (cell);
setup_selection_click_workaround (cell);
}