iconview: Fix autoscroll
... when the iconview is not the only child in it's parent GdkWindow.
This commit is contained in:
parent
861a9adbad
commit
0794143f41
@ -5946,22 +5946,22 @@ gtk_icon_view_autoscroll (GtkIconView *icon_view,
|
|||||||
GdkDevice *device)
|
GdkDevice *device)
|
||||||
{
|
{
|
||||||
GdkWindow *window;
|
GdkWindow *window;
|
||||||
gint px, py, x, y, width, height;
|
gint px, py, width, height;
|
||||||
gint hoffset, voffset;
|
gint hoffset, voffset;
|
||||||
|
|
||||||
window = gtk_widget_get_window (GTK_WIDGET (icon_view));
|
window = gtk_widget_get_window (GTK_WIDGET (icon_view));
|
||||||
|
|
||||||
gdk_window_get_device_position (window, device, &px, &py, NULL);
|
gdk_window_get_device_position (window, device, &px, &py, NULL);
|
||||||
gdk_window_get_geometry (window, &x, &y, &width, &height);
|
gdk_window_get_geometry (window, NULL, NULL, &width, &height);
|
||||||
|
|
||||||
/* see if we are near the edge. */
|
/* see if we are near the edge. */
|
||||||
voffset = py - (y + 2 * SCROLL_EDGE_SIZE);
|
voffset = py - 2 * SCROLL_EDGE_SIZE;
|
||||||
if (voffset > 0)
|
if (voffset > 0)
|
||||||
voffset = MAX (py - (y + height - 2 * SCROLL_EDGE_SIZE), 0);
|
voffset = MAX (py - (height - 2 * SCROLL_EDGE_SIZE), 0);
|
||||||
|
|
||||||
hoffset = px - (x + 2 * SCROLL_EDGE_SIZE);
|
hoffset = px - 2 * SCROLL_EDGE_SIZE;
|
||||||
if (hoffset > 0)
|
if (hoffset > 0)
|
||||||
hoffset = MAX (px - (x + width - 2 * SCROLL_EDGE_SIZE), 0);
|
hoffset = MAX (px - (width - 2 * SCROLL_EDGE_SIZE), 0);
|
||||||
|
|
||||||
if (voffset != 0)
|
if (voffset != 0)
|
||||||
gtk_adjustment_set_value (icon_view->priv->vadjustment,
|
gtk_adjustment_set_value (icon_view->priv->vadjustment,
|
||||||
|
Loading…
Reference in New Issue
Block a user