[gtk+/wip/baedert/drawing: 249/359] expander: Fix pressed_in_title check



commit 7662e326f3e425880fe97eab6cc6ff927ffeec85
Author: Timm Bäder <mail baedert org>
Date:   Sat Jun 17 08:54:59 2017 +0200

    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 files changed, 6 insertions(+), 10 deletions(-)
---
diff --git a/gtk/gtkexpander.c b/gtk/gtkexpander.c
index 711be4c..12f8191 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


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]