From 458dbcd8a0ad748a6cfb8dcfcf09320e63e5fba9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Sat, 17 Jun 2017 08:54:59 +0200 Subject: [PATCH] expander: Fix pressed_in_title check gesture coords are relative to the expander widget, the title allocation is relative to the box child. --- gtk/gtkexpander.c | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/gtk/gtkexpander.c b/gtk/gtkexpander.c index 711be4c63e..12f8191430 100644 --- a/gtk/gtkexpander.c +++ b/gtk/gtkexpander.c @@ -545,20 +545,16 @@ gesture_multipress_pressed_cb (GtkGestureMultiPress *gesture, GtkExpander *expander) { GtkExpanderPrivate *priv = expander->priv; - GtkAllocation title_allocation, allocation; + GtkAllocation title_allocation; - gtk_widget_get_allocation (GTK_WIDGET (expander), &allocation); - gtk_widget_get_allocation (priv->title_widget, &title_allocation); + gtk_widget_get_own_allocation (priv->title_widget, &title_allocation); + gtk_widget_translate_coordinates (priv->title_widget, GTK_WIDGET (expander), + title_allocation.x, title_allocation.y, + &title_allocation.x, &title_allocation.y); /* Coordinates are in the widget coordinate system, so transform * the title_allocation to it. */ - title_allocation.x -= allocation.x; - title_allocation.y -= allocation.y; - - priv->pressed_in_title = (x >= title_allocation.x && - x < title_allocation.x + title_allocation.width && - y >= title_allocation.y && - y < title_allocation.y + title_allocation.height); + priv->pressed_in_title = gdk_rectangle_contains_point (&title_allocation, x, y); } static void