summaryrefslogtreecommitdiff
path: root/src/nautilus-canvas-view.c
diff options
context:
space:
mode:
authorAntónio Fernandes <antoniof@gnome.org>2018-01-28 12:46:21 +0000
committerAntónio Fernandes <antoniof@gnome.org>2018-01-30 09:13:08 +0000
commit08732adef3b9c5e536010191e43dfb448fa076d7 (patch)
tree0eaee366c93ff4d5a3eb5001f2102f3398f744b9 /src/nautilus-canvas-view.c
parentdd672624e7f268320b80416235e3f79f7707944e (diff)
downloadnautilus-08732adef3b9c5e536010191e43dfb448fa076d7.tar.gz
canvas-view: Share common code for rectangle computation
Make internal function for both _reveal_rectangle_for_context_menu() and _compute_rename_popover_pointing_to() to avoid code duplication.
Diffstat (limited to 'src/nautilus-canvas-view.c')
-rw-r--r--src/nautilus-canvas-view.c67
1 files changed, 34 insertions, 33 deletions
diff --git a/src/nautilus-canvas-view.c b/src/nautilus-canvas-view.c
index 2990a2923..761273903 100644
--- a/src/nautilus-canvas-view.c
+++ b/src/nautilus-canvas-view.c
@@ -935,28 +935,45 @@ nautilus_canvas_view_reveal_selection (NautilusFilesView *view)
}
static GdkRectangle *
+get_rectangle_for_data (NautilusFilesView *view,
+ NautilusCanvasIconData *data)
+{
+ NautilusCanvasContainer *container;
+ GdkRectangle *rectangle;
+
+ container = get_canvas_container (NAUTILUS_CANVAS_VIEW (view));
+ rectangle = nautilus_canvas_container_get_icon_bounding_box (container, data);
+ if (rectangle != NULL)
+ {
+ GtkWidget *context_widget;
+ GtkAdjustment *vadjustment;
+ GtkAdjustment *hadjustment;
+
+ context_widget = nautilus_files_view_get_content_widget (view);
+ vadjustment = gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (context_widget));
+ hadjustment = gtk_scrolled_window_get_hadjustment (GTK_SCROLLED_WINDOW (context_widget));
+
+ rectangle->x -= gtk_adjustment_get_value (hadjustment);
+ rectangle->y -= gtk_adjustment_get_value (vadjustment);
+ }
+ return rectangle;
+}
+
+static GdkRectangle *
nautilus_canvas_view_compute_rename_popover_pointing_to (NautilusFilesView *view)
{
- GArray *bounding_boxes;
- GdkRectangle *bounding_box;
- NautilusCanvasContainer *canvas_container;
- GtkAdjustment *vadjustment, *hadjustment;
- GtkWidget *parent_container;
+ g_autoptr (GList) selection = NULL;
+ NautilusCanvasIconData *data;
- canvas_container = get_canvas_container (NAUTILUS_CANVAS_VIEW (view));
- bounding_boxes = nautilus_canvas_container_get_selected_icons_bounding_box (canvas_container);
- /* We only allow renaming one item at once */
- bounding_box = &g_array_index (bounding_boxes, GdkRectangle, 0);
- parent_container = nautilus_files_view_get_content_widget (view);
- vadjustment = gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (parent_container));
- hadjustment = gtk_scrolled_window_get_hadjustment (GTK_SCROLLED_WINDOW (parent_container));
+ g_return_val_if_fail (NAUTILUS_IS_CANVAS_VIEW (view), NULL);
- bounding_box->x -= gtk_adjustment_get_value (hadjustment);
- bounding_box->y -= gtk_adjustment_get_value (vadjustment);
+ selection = nautilus_view_get_selection (NAUTILUS_VIEW (view));
+ g_return_val_if_fail (selection != NULL, NULL);
- g_array_free (bounding_boxes, FALSE);
+ /* We only allow renaming one item at once */
+ data = NAUTILUS_CANVAS_ICON_DATA (selection->data);
- return bounding_box;
+ return get_rectangle_for_data (view, data);
}
static GdkRectangle *
@@ -965,7 +982,6 @@ nautilus_canvas_view_reveal_for_selection_context_menu (NautilusFilesView *view)
g_autoptr (GList) selection = NULL;
NautilusCanvasContainer *container;
NautilusCanvasIconData *data;
- GdkRectangle *rectangle;
g_return_val_if_fail (NAUTILUS_IS_CANVAS_VIEW (view), NULL);
@@ -988,22 +1004,7 @@ nautilus_canvas_view_reveal_for_selection_context_menu (NautilusFilesView *view)
nautilus_canvas_container_reveal (container, data);
- rectangle = nautilus_canvas_container_get_icon_bounding_box (container, data);
- if (rectangle != NULL)
- {
- GtkScrolledWindow *parent_container;
- GtkAdjustment *vadjustment;
- GtkAdjustment *hadjustment;
-
- parent_container = GTK_SCROLLED_WINDOW (nautilus_files_view_get_content_widget (view));
- vadjustment = gtk_scrolled_window_get_vadjustment (parent_container);
- hadjustment = gtk_scrolled_window_get_hadjustment (parent_container);
-
- rectangle->x -= gtk_adjustment_get_value (hadjustment);
- rectangle->y -= gtk_adjustment_get_value (vadjustment);
- }
-
- return rectangle;
+ return get_rectangle_for_data (view, data);
}
static void