[gnome-todo] task-row: Replace :event by GtkGestureMultiPress
- From: Georges Basile Stavracas Neto <gbsneto src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-todo] task-row: Replace :event by GtkGestureMultiPress
- Date: Mon, 5 Nov 2018 23:41:30 +0000 (UTC)
commit 7041d2ea2efe743b24b6e8831b0929c59f98fd1b
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date: Mon Nov 5 21:40:13 2018 -0200
task-row: Replace :event by GtkGestureMultiPress
The GtkWidget:event signal does not exist anymore, so let's port
this code to GtkGestureMultiPress and be the good citizens.
data/ui/task-row.ui | 16 ++++++++++++++--
src/task-list-view/gtd-task-row.c | 29 ++++++++++++++++-------------
2 files changed, 30 insertions(+), 15 deletions(-)
---
diff --git a/data/ui/task-row.ui b/data/ui/task-row.ui
index 1291bfc..f06b639 100644
--- a/data/ui/task-row.ui
+++ b/data/ui/task-row.ui
@@ -51,7 +51,13 @@
<signal name="drag-end" handler="on_drag_end_cb" object="GtdTaskRow" swapped="no" />
<signal name="drag-data-get" handler="on_drag_data_get_cb" object="GtdTaskRow"
swapped="no" />
<signal name="drag-failed" handler="on_drag_failed_cb" object="GtdTaskRow" swapped="no"
/>
- <signal name="event" handler="on_button_press_event_cb" object="GtdTaskRow" swapped="no"
/>
+
+ <child>
+ <object class="GtkGestureMultiPress">
+ <property name="propagation-phase">capture</property>
+ <signal name="pressed" handler="on_button_press_event_cb" object="GtdTaskRow"
swapped="no" />
+ </object>
+ </child>
<style>
<class name="dim-label" />
</style>
@@ -80,7 +86,13 @@
<signal name="drag-begin" handler="on_drag_begin_cb" object="GtdTaskRow" swapped="no" />
<signal name="drag-end" handler="on_drag_end_cb" object="GtdTaskRow" swapped="no" />
<signal name="drag-failed" handler="on_drag_failed_cb" object="GtdTaskRow" swapped="no"
/>
- <signal name="event" handler="on_button_press_event_cb" object="GtdTaskRow" swapped="no"
/>
+
+ <child>
+ <object class="GtkGestureMultiPress">
+ <property name="propagation-phase">capture</property>
+ <signal name="pressed" handler="on_button_press_event_cb" object="GtdTaskRow"
swapped="no" />
+ </object>
+ </child>
<!-- Task title entry -->
<child>
diff --git a/src/task-list-view/gtd-task-row.c b/src/task-list-view/gtd-task-row.c
index 2088650..ab74e18 100644
--- a/src/task-list-view/gtd-task-row.c
+++ b/src/task-list-view/gtd-task-row.c
@@ -262,32 +262,35 @@ on_remove_task_cb (GtdEditPane *edit_panel,
g_signal_emit (self, signals[REMOVE_TASK], 0);
}
-static gboolean
-on_button_press_event_cb (GtkWidget *widget,
- GdkEvent *event,
- GtdTaskRow *self)
+static void
+on_button_press_event_cb (GtkGestureMultiPress *gesture,
+ gint n_press,
+ gdouble x,
+ gdouble y,
+ GtdTaskRow *self)
{
- gdouble event_x;
- gdouble event_y;
+ GtkWidget *widget;
gint real_x;
gint real_y;
- if (gdk_event_get_event_type (event) != GDK_BUTTON_PRESS)
- return GDK_EVENT_PROPAGATE;
-
- gdk_event_get_coords (event, &event_x, &event_y);
+ widget = gtk_event_controller_get_widget (GTK_EVENT_CONTROLLER (gesture));
gtk_widget_translate_coordinates (widget,
GTK_WIDGET (self),
- event_x,
- event_y,
+ x,
+ y,
&real_x,
&real_y);
self->clicked_x = real_x;
self->clicked_y = real_y;
- return GDK_EVENT_PROPAGATE;
+ GTD_TRACE_MSG ("GtkGestureMultiPress:pressed received from a %s at %.1f,%.1f (%d,%d)",
+ G_OBJECT_TYPE_NAME (widget),
+ x,
+ y,
+ real_x,
+ real_y);
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]