summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTimm Bäder <mail@baedert.org>2017-05-09 19:26:27 +0200
committerCarlos Garnacho <carlosg@gnome.org>2017-05-25 16:25:59 +0200
commite54d8a6114a87d0d83c091e9f0f7601c5461c5c3 (patch)
treea572de0057a1b7b9f6062d2c741cff611bc5ca46
parent782477188a3437f6fec157946d7519ca8eeda456 (diff)
downloadgtk+-e54d8a6114a87d0d83c091e9f0f7601c5461c5c3.tar.gz
scrolledwindow: Calculate indicator coords relative to scrolledwindow
The event coordinates we get are relative to the scrolledwindow coordinates.
-rw-r--r--gtk/gtkscrolledwindow.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/gtk/gtkscrolledwindow.c b/gtk/gtkscrolledwindow.c
index c3d437de01..2eef2bf898 100644
--- a/gtk/gtkscrolledwindow.c
+++ b/gtk/gtkscrolledwindow.c
@@ -1083,14 +1083,21 @@ event_close_to_indicator (GtkScrolledWindow *sw,
{
GtkScrolledWindowPrivate *priv;
GtkAllocation indicator_alloc;
+ GtkAllocation sw_alloc;
gdouble x, y;
gint distance;
priv = sw->priv;
+ gtk_widget_get_allocation (GTK_WIDGET (sw), &sw_alloc);
gtk_widget_get_allocation (indicator->scrollbar, &indicator_alloc);
gdk_event_get_coords (event, &x, &y);
+ /* Make indicator alloc relative to scrolledwindow alloc, which is also
+ * what the event coords are relative to */
+ indicator_alloc.x -= sw_alloc.x;
+ indicator_alloc.y -= sw_alloc.y;
+
if (indicator->over)
distance = INDICATOR_FAR_DISTANCE;
else