summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libcaja-private/caja-icon-container.c36
1 files changed, 36 insertions, 0 deletions
diff --git a/libcaja-private/caja-icon-container.c b/libcaja-private/caja-icon-container.c
index af8de17e..21e8fc1b 100644
--- a/libcaja-private/caja-icon-container.c
+++ b/libcaja-private/caja-icon-container.c
@@ -623,8 +623,13 @@ caja_icon_container_scroll (CajaIconContainer *container,
old_h_value = gtk_adjustment_get_value (hadj);
old_v_value = gtk_adjustment_get_value (vadj);
+#if GTK_CHECK_VERSION (3, 0, 0)
gtk_adjustment_set_value (hadj, gtk_adjustment_get_value (hadj) + delta_x);
gtk_adjustment_set_value (vadj, gtk_adjustment_get_value (vadj) + delta_y);
+#else
+ eel_gtk_adjustment_set_value (hadj, gtk_adjustment_get_value (hadj) + delta_x);
+ eel_gtk_adjustment_set_value (vadj, gtk_adjustment_get_value (vadj) + delta_y);
+#endif
/* return TRUE if we did scroll */
return gtk_adjustment_get_value (hadj) != old_h_value || gtk_adjustment_get_value (vadj) != old_v_value;
@@ -778,6 +783,7 @@ reveal_icon (CajaIconContainer *container,
item_get_canvas_bounds (EEL_CANVAS_ITEM (icon->item), &bounds, TRUE);
}
if (bounds.y0 < gtk_adjustment_get_value (vadj)) {
+#if GTK_CHECK_VERSION (3, 0, 0)
gtk_adjustment_set_value (vadj, bounds.y0);
} else if (bounds.y1 > gtk_adjustment_get_value (vadj) + allocation.height) {
gtk_adjustment_set_value (vadj, bounds.y1 - allocation.height);
@@ -790,6 +796,20 @@ reveal_icon (CajaIconContainer *container,
gtk_adjustment_set_value (hadj, bounds.x0);
} else {
gtk_adjustment_set_value (hadj, bounds.x1 - allocation.width);
+#else
+ eel_gtk_adjustment_set_value (vadj, bounds.y0);
+ } else if (bounds.y1 > gtk_adjustment_get_value (vadj) + allocation.height) {
+ eel_gtk_adjustment_set_value (vadj, bounds.y1 - allocation.height);
+ }
+
+ if (bounds.x0 < gtk_adjustment_get_value (hadj)) {
+ eel_gtk_adjustment_set_value (hadj, bounds.x0);
+ } else if (bounds.x1 > gtk_adjustment_get_value (hadj) + allocation.width) {
+ if (bounds.x1 - allocation.width > bounds.x0) {
+ eel_gtk_adjustment_set_value (hadj, bounds.x0);
+ } else {
+ eel_gtk_adjustment_set_value (hadj, bounds.x1 - allocation.width);
+#endif
}
}
}
@@ -1230,6 +1250,13 @@ caja_icon_container_update_scroll_region (CajaIconContainer *container)
{
gtk_adjustment_set_step_increment (vadj, step_increment);
}
+#if !GTK_CHECK_VERSION (3, 0, 0)
+ /* Now that we have a new scroll region, clamp the
+ * adjustments so we are within the valid scroll area.
+ */
+ eel_gtk_adjustment_clamp_value (hadj);
+ eel_gtk_adjustment_clamp_value (vadj);
+#endif
}
static int
@@ -7475,12 +7502,21 @@ caja_icon_container_scroll_to_icon (CajaIconContainer *container,
if (caja_icon_container_is_layout_vertical (container)) {
if (caja_icon_container_is_layout_rtl (container)) {
+#if GTK_CHECK_VERSION (3, 0, 0)
gtk_adjustment_set_value (hadj, bounds.x1 - allocation.width);
} else {
gtk_adjustment_set_value (hadj, bounds.x0);
}
} else {
gtk_adjustment_set_value (vadj, bounds.y0);
+#else
+ eel_gtk_adjustment_set_value (hadj, bounds.x1 - allocation.width);
+ } else {
+ eel_gtk_adjustment_set_value (hadj, bounds.x0);
+ }
+ } else {
+ eel_gtk_adjustment_set_value (vadj, bounds.y0);
+#endif
}
}