[gtk+/wip/carlosg/event-delivery: 91/104] gtkpopover: Use event coordinates right away to detect clicks outside.



commit ee894903c780cbf7e1e5445c2b492326fbb36ede
Author: Carlos Garnacho <carlosg gnome org>
Date:   Fri May 12 12:42:48 2017 +0200

    gtkpopover: Use event coordinates right away to detect clicks outside.
    
    There's no need anymore to translate coordinates, the event already contains
    popover-relative ones.

 gtk/gtkpopover.c |   26 ++++++++------------------
 1 files changed, 8 insertions(+), 18 deletions(-)
---
diff --git a/gtk/gtkpopover.c b/gtk/gtkpopover.c
index 95b363e..44a0515 100644
--- a/gtk/gtkpopover.c
+++ b/gtk/gtkpopover.c
@@ -1410,31 +1410,21 @@ gtk_popover_button_release (GtkWidget      *widget,
                            GdkEventButton *event)
 {
   GtkPopover *popover = GTK_POPOVER (widget);
-  GtkWidget *child, *event_widget;
+  GtkAllocation child_alloc;
+  GtkWidget *child;
 
   child = gtk_bin_get_child (GTK_BIN (widget));
 
   if (!popover->priv->button_pressed)
     return GDK_EVENT_PROPAGATE;
 
-  event_widget = gtk_get_event_widget ((GdkEvent *) event);
-
-  if (child && event->window == gtk_widget_get_window (widget))
-    {
-      GtkAllocation child_alloc;
-
-      gtk_widget_get_allocation (child, &child_alloc);
+  gtk_widget_get_allocation (child, &child_alloc);
 
-      if (event->x < child_alloc.x ||
-          event->x > child_alloc.x + child_alloc.width ||
-          event->y < child_alloc.y ||
-          event->y > child_alloc.y + child_alloc.height)
-        gtk_popover_popdown (popover);
-    }
-  else if (!gtk_widget_is_ancestor (event_widget, widget))
-    {
-      gtk_popover_popdown (popover);
-    }
+  if (event->x < child_alloc.x ||
+      event->x > child_alloc.x + child_alloc.width ||
+      event->y < child_alloc.y ||
+      event->y > child_alloc.y + child_alloc.height)
+    gtk_popover_popdown (popover);
 
   return GDK_EVENT_PROPAGATE;
 }


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