[libhandy] swipe-tracker: Keep association from the swipeable to swipe tracker



commit 49ce664648d0a80a3215aa710fbdecf3cd0c5807
Author: Alexander Mikhaylenko <alexm gnome org>
Date:   Sun Jun 14 22:02:36 2020 +0500

    swipe-tracker: Keep association from the swipeable to swipe tracker
    
    This will be needed later, to capture events internally.
    
    Signed-off-by: Alexander Mikhaylenko <alexm gnome org>

 src/hdy-swipe-tracker.c | 10 ++++++++++
 1 file changed, 10 insertions(+)
---
diff --git a/src/hdy-swipe-tracker.c b/src/hdy-swipe-tracker.c
index 29bd8dff..eb8820a5 100644
--- a/src/hdy-swipe-tracker.c
+++ b/src/hdy-swipe-tracker.c
@@ -562,6 +562,8 @@ hdy_swipe_tracker_constructed (GObject *object)
 
   g_signal_connect_object (self->swipeable, "event", G_CALLBACK (handle_event_cb), self, G_CONNECT_SWAPPED);
 
+  g_object_set_data (G_OBJECT (self->swipeable), "swipe-tracker", self);
+
   G_OBJECT_CLASS (hdy_swipe_tracker_parent_class)->constructed (object);
 }
 
@@ -576,6 +578,8 @@ hdy_swipe_tracker_dispose (GObject *object)
   if (self->touch_gesture)
     g_signal_handlers_disconnect_by_data (self->touch_gesture, self);
 
+  g_object_set_data (G_OBJECT (self->swipeable), "swipe-tracker", NULL);
+
   g_clear_object (&self->touch_gesture);
   g_clear_object (&self->swipeable);
 
@@ -753,8 +757,14 @@ hdy_swipe_tracker_init (HdySwipeTracker *self)
 HdySwipeTracker *
 hdy_swipe_tracker_new (HdySwipeable *swipeable)
 {
+  gpointer swipe_tracker;
+
   g_return_val_if_fail (swipeable != NULL, NULL);
 
+  swipe_tracker = g_object_get_data (G_OBJECT (swipeable), "swipe-tracker");
+
+  g_return_val_if_fail (swipe_tracker == NULL, NULL);
+
   return g_object_new (HDY_TYPE_SWIPE_TRACKER,
                        "swipeable", swipeable,
                        NULL);


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