[mutter] clutter/timeline: Add helpers to remove/add timeline to some frame clock



commit f31a7acab552bca37f9c0578105ed8b01abd1c63
Author: Jonas Ã…dahl <jadahl gmail com>
Date:   Wed Mar 25 19:18:00 2020 +0100

    clutter/timeline: Add helpers to remove/add timeline to some frame clock
    
    Either the master clock or assigned frame clock.
    
    https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1285

 clutter/clutter/clutter-timeline.c | 66 ++++++++++++++++++++++----------------
 1 file changed, 39 insertions(+), 27 deletions(-)
---
diff --git a/clutter/clutter/clutter-timeline.c b/clutter/clutter/clutter-timeline.c
index bc2e744e4b..dd8451323d 100644
--- a/clutter/clutter/clutter-timeline.c
+++ b/clutter/clutter/clutter-timeline.c
@@ -512,6 +512,42 @@ clutter_timeline_get_property (GObject    *object,
     }
 }
 
+static void
+add_timeline (ClutterTimeline *timeline)
+{
+  ClutterTimelinePrivate *priv = timeline->priv;
+
+  if (priv->frame_clock)
+    {
+      clutter_frame_clock_add_timeline (priv->frame_clock, timeline);
+    }
+  else
+    {
+      ClutterMasterClock *master_clock;
+
+      master_clock = _clutter_master_clock_get_default ();
+      _clutter_master_clock_add_timeline (master_clock, timeline);
+    }
+}
+
+static void
+remove_timeline (ClutterTimeline *timeline)
+{
+  ClutterTimelinePrivate *priv = timeline->priv;
+
+  if (priv->frame_clock)
+    {
+      clutter_frame_clock_remove_timeline (priv->frame_clock, timeline);
+    }
+  else
+    {
+      ClutterMasterClock *master_clock;
+
+      master_clock = _clutter_master_clock_get_default ();
+      _clutter_master_clock_remove_timeline (master_clock, timeline);
+    }
+}
+
 static void
 clutter_timeline_finalize (GObject *object)
 {
@@ -522,19 +558,7 @@ clutter_timeline_finalize (GObject *object)
     g_hash_table_destroy (priv->markers_by_name);
 
   if (priv->is_playing)
-    {
-      if (priv->frame_clock)
-        {
-          clutter_frame_clock_remove_timeline (priv->frame_clock, self);
-        }
-      else
-        {
-          ClutterMasterClock *master_clock;
-
-          master_clock = _clutter_master_clock_get_default ();
-          _clutter_master_clock_remove_timeline (master_clock, self);
-        }
-    }
+    remove_timeline (self);
 
   g_clear_object (&priv->frame_clock);
 
@@ -971,24 +995,12 @@ set_is_playing (ClutterTimeline *timeline,
     {
       priv->waiting_first_tick = TRUE;
       priv->current_repeat = 0;
-    }
 
-  if (priv->frame_clock)
-    {
-      if (priv->is_playing)
-        clutter_frame_clock_add_timeline (priv->frame_clock, timeline);
-      else
-        clutter_frame_clock_remove_timeline (priv->frame_clock, timeline);
+      add_timeline (timeline);
     }
   else
     {
-      ClutterMasterClock *master_clock;
-
-      master_clock = _clutter_master_clock_get_default ();
-      if (priv->is_playing)
-        _clutter_master_clock_add_timeline (master_clock, timeline);
-      else
-        _clutter_master_clock_remove_timeline (master_clock, timeline);
+      remove_timeline (timeline);
     }
 }
 


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