[gtk+] popover: Stop using ::button-press/release-event
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] popover: Stop using ::button-press/release-event
- Date: Tue, 16 Jan 2018 19:22:58 +0000 (UTC)
commit fb2df00f1523809125f50da34c3e9d4c97fe2d82
Author: Matthias Clasen <mclasen redhat com>
Date: Tue Jan 16 13:57:50 2018 -0500
popover: Stop using ::button-press/release-event
Just use a generic ::event handler.
gtk/gtkpopover.c | 51 +++++++++++++++++++++------------------------------
1 files changed, 21 insertions(+), 30 deletions(-)
---
diff --git a/gtk/gtkpopover.c b/gtk/gtkpopover.c
index 3e0a172..58b89ec 100644
--- a/gtk/gtkpopover.c
+++ b/gtk/gtkpopover.c
@@ -1371,41 +1371,33 @@ gtk_popover_size_allocate (GtkWidget *widget,
}
static gboolean
-gtk_popover_button_press (GtkWidget *widget,
- GdkEventButton *event)
+gtk_popover_event (GtkWidget *widget,
+ GdkEvent *event)
{
GtkPopover *popover = GTK_POPOVER (widget);
- if (gdk_event_get_event_type ((GdkEvent *) event) != GDK_BUTTON_PRESS)
- return GDK_EVENT_PROPAGATE;
-
- popover->priv->button_pressed = TRUE;
-
- return GDK_EVENT_PROPAGATE;
-}
-
-static gboolean
-gtk_popover_button_release (GtkWidget *widget,
- GdkEventButton *event)
-{
- GtkPopover *popover = GTK_POPOVER (widget);
- GtkAllocation child_alloc;
- GtkWidget *child;
- gdouble x, y;
+ if (gdk_event_get_event_type (event) == GDK_BUTTON_PRESS)
+ popover->priv->button_pressed = TRUE;
+ else if (gdk_event_get_event_type (event) == GDK_BUTTON_RELEASE)
+ {
+ GtkAllocation child_alloc;
+ GtkWidget *child;
+ gdouble x, y;
- child = gtk_bin_get_child (GTK_BIN (widget));
+ child = gtk_bin_get_child (GTK_BIN (widget));
- if (!popover->priv->button_pressed ||
- !gdk_event_get_coords ((GdkEvent *) event, &x, &y))
- return GDK_EVENT_PROPAGATE;
+ if (!popover->priv->button_pressed ||
+ !gdk_event_get_coords (event, &x, &y))
+ return GDK_EVENT_PROPAGATE;
- gtk_widget_get_allocation (child, &child_alloc);
+ gtk_widget_get_allocation (child, &child_alloc);
- if (x < child_alloc.x ||
- x > child_alloc.x + child_alloc.width ||
- y < child_alloc.y ||
- y > child_alloc.y + child_alloc.height)
- gtk_popover_popdown (popover);
+ if (x < child_alloc.x ||
+ x > child_alloc.x + child_alloc.width ||
+ y < child_alloc.y ||
+ y > child_alloc.y + child_alloc.height)
+ gtk_popover_popdown (popover);
+ }
return GDK_EVENT_PROPAGATE;
}
@@ -1584,8 +1576,7 @@ gtk_popover_class_init (GtkPopoverClass *klass)
widget_class->measure = gtk_popover_measure;
widget_class->size_allocate = gtk_popover_size_allocate;
widget_class->snapshot = gtk_popover_snapshot;
- widget_class->button_press_event = gtk_popover_button_press;
- widget_class->button_release_event = gtk_popover_button_release;
+ widget_class->event = gtk_popover_event;
widget_class->key_press_event = gtk_popover_key_press;
widget_class->grab_focus = gtk_popover_grab_focus;
widget_class->focus = gtk_popover_focus;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]