[gtk+/gestures: 157/202] button: Use GtkGestureMultiPress for signal emission
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/gestures: 157/202] button: Use GtkGestureMultiPress for signal emission
- Date: Fri, 23 May 2014 18:09:34 +0000 (UTC)
commit fd9925141b38d464d2cc60a31ecf5f3b58953dc5
Author: Carlos Garnacho <carlosg gnome org>
Date: Mon May 12 19:12:27 2014 +0200
button: Use GtkGestureMultiPress for signal emission
It is now useful for that purpose with a ::release signal, so replace
the custom GtkGestureSingle with one of these.
gtk/gtkbutton.c | 26 +++++++++++++++-----------
1 files changed, 15 insertions(+), 11 deletions(-)
---
diff --git a/gtk/gtkbutton.c b/gtk/gtkbutton.c
index f355372..e5ae409 100644
--- a/gtk/gtkbutton.c
+++ b/gtk/gtkbutton.c
@@ -585,23 +585,27 @@ gtk_button_class_init (GtkButtonClass *klass)
}
static void
-gesture_begin_cb (GtkGesture *gesture,
- gpointer sequence,
- GtkWidget *widget)
+multipress_pressed_cb (GtkGestureMultiPress *gesture,
+ guint n_press,
+ gdouble x,
+ gdouble y,
+ GtkWidget *widget)
{
GtkButton *button = GTK_BUTTON (widget);
GtkButtonPrivate *priv = button->priv;
if (priv->focus_on_click && !gtk_widget_has_focus (widget))
gtk_widget_grab_focus (widget);
-
+
g_signal_emit (button, button_signals[PRESSED], 0);
}
static void
-gesture_end_cb (GtkGesture *gesture,
- gpointer sequence,
- GtkWidget *widget)
+multipress_released_cb (GtkGestureMultiPress *gesture,
+ guint n_press,
+ gdouble x,
+ gdouble y,
+ GtkWidget *widget)
{
GtkButton *button = GTK_BUTTON (widget);
@@ -643,12 +647,12 @@ gtk_button_init (GtkButton *button)
context = gtk_widget_get_style_context (GTK_WIDGET (button));
gtk_style_context_add_class (context, GTK_STYLE_CLASS_BUTTON);
- priv->gesture = GTK_GESTURE (g_object_new (GTK_TYPE_GESTURE_SINGLE, "widget", button, NULL));
+ priv->gesture = gtk_gesture_multi_press_new (GTK_WIDGET (button));
gtk_gesture_single_set_touch_only (GTK_GESTURE_SINGLE (priv->gesture), FALSE);
gtk_gesture_single_set_button (GTK_GESTURE_SINGLE (priv->gesture), GDK_BUTTON_PRIMARY);
- g_signal_connect (priv->gesture, "begin", G_CALLBACK (gesture_begin_cb), button);
- g_signal_connect (priv->gesture, "end", G_CALLBACK (gesture_end_cb), button);
- gtk_gesture_attach (priv->gesture, GTK_PHASE_BUBBLE);
+ g_signal_connect (priv->gesture, "pressed", G_CALLBACK (multipress_pressed_cb), button);
+ g_signal_connect (priv->gesture, "released", G_CALLBACK (multipress_released_cb), button);
+ gtk_gesture_attach (priv->gesture, GTK_PHASE_TARGET);
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]