[gtk+] popover: Check for uncaught button events from children
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] popover: Check for uncaught button events from children
- Date: Mon, 19 May 2014 12:00:21 +0000 (UTC)
commit cacccf7a3a5686c9885324839dadaf88a9591587
Author: Carlos Garnacho <carlosg gnome org>
Date: Mon May 19 13:50:21 2014 +0200
popover: Check for uncaught button events from children
And deal correctly with those as a click within the popover.
https://bugzilla.gnome.org/show_bug.cgi?id=727994
gtk/gtkpopover.c | 6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)
---
diff --git a/gtk/gtkpopover.c b/gtk/gtkpopover.c
index 8e6059e..885b691 100644
--- a/gtk/gtkpopover.c
+++ b/gtk/gtkpopover.c
@@ -1162,13 +1162,15 @@ gtk_popover_button_release (GtkWidget *widget,
GdkEventButton *event)
{
GtkPopover *popover = GTK_POPOVER (widget);
- GtkWidget *child;
+ GtkWidget *child, *event_widget;
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;
@@ -1181,7 +1183,7 @@ gtk_popover_button_release (GtkWidget *widget,
event->y > child_alloc.y + child_alloc.height)
gtk_widget_hide (widget);
}
- else
+ else if (!gtk_widget_is_ancestor (event_widget, widget))
gtk_widget_hide (widget);
return GDK_EVENT_PROPAGATE;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]