From 790c153b2cf31b0d5a27dda4a383f3749f89d136 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Sat, 20 May 2017 15:04:03 +0200 Subject: [PATCH] range: Fix click detection in slider trace The x/y/ coordinates are relative to the range allocation, so take that into account. --- gtk/gtkrange.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gtk/gtkrange.c b/gtk/gtkrange.c index 493fda8a9d..f8afc2ccfc 100644 --- a/gtk/gtkrange.c +++ b/gtk/gtkrange.c @@ -1989,6 +1989,7 @@ gtk_range_multipress_gesture_pressed (GtkGestureMultiPress *gesture, "gtk-primary-button-warps-slider", &primary_warps, NULL); + if (priv->mouse_location == priv->slider_widget && gdk_event_triggers_context_menu (event)) { @@ -2727,7 +2728,7 @@ gtk_range_update_mouse_location (GtkRange *range) priv->mouse_location = priv->grab_location; else if (rectangle_contains_point (&slider_alloc, range_alloc.x + x, range_alloc.y + y)) priv->mouse_location = priv->slider_widget; - else if (rectangle_contains_point (&slider_trace, x, y)) + else if (rectangle_contains_point (&slider_trace, range_alloc.x + x, range_alloc.y + y)) priv->mouse_location = priv->trough_widget; else if (rectangle_contains_point (&range_alloc, range_alloc.x + x, range_alloc.y + y)) priv->mouse_location = widget;