diff options
author | Owen W. Taylor <otaylor@fishsoup.net> | 2013-02-15 22:21:21 -0500 |
---|---|---|
committer | Owen W. Taylor <otaylor@fishsoup.net> | 2013-02-15 22:28:52 -0500 |
commit | d203f636417f2ef3c84bf022bea8d2eb5d6804e1 (patch) | |
tree | fb1ad0dd379327e0ab5af937d79e543254808903 /gdk/gdkframeclockidle.c | |
parent | ecddf94f4324b9e9ef961771e7cbb5ff56661997 (diff) | |
download | gtk+-d203f636417f2ef3c84bf022bea8d2eb5d6804e1.tar.gz |
GdkFrameClockIdle: remove timeouts in dispose
When a frame clock is disposed, remove active timeouts; also get
rid of the last traces of an unused GTimer.
Diffstat (limited to 'gdk/gdkframeclockidle.c')
-rw-r--r-- | gdk/gdkframeclockidle.c | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/gdk/gdkframeclockidle.c b/gdk/gdkframeclockidle.c index 752e72c13f..d07c1d80bb 100644 --- a/gdk/gdkframeclockidle.c +++ b/gdk/gdkframeclockidle.c @@ -55,8 +55,6 @@ struct _GdkFrameClockIdlePrivate static gboolean gdk_frame_clock_flush_idle (void *data); static gboolean gdk_frame_clock_paint_idle (void *data); -static void gdk_frame_clock_idle_finalize (GObject *object); - G_DEFINE_TYPE (GdkFrameClockIdle, gdk_frame_clock_idle, GDK_TYPE_FRAME_CLOCK) static gint64 sleep_serial; @@ -121,18 +119,27 @@ gdk_frame_clock_idle_init (GdkFrameClockIdle *frame_clock_idle) GdkFrameClockIdlePrivate); priv = frame_clock_idle->priv; - priv->timer = g_timer_new (); priv->freeze_count = 0; } static void -gdk_frame_clock_idle_finalize (GObject *object) +gdk_frame_clock_idle_dispose (GObject *object) { GdkFrameClockIdlePrivate *priv = GDK_FRAME_CLOCK_IDLE (object)->priv; - g_timer_destroy (priv->timer); + if (priv->flush_idle_id != 0) + { + g_source_remove (priv->flush_idle_id); + priv->flush_idle_id = 0; + } + + if (priv->paint_idle_id != 0) + { + g_source_remove (priv->paint_idle_id); + priv->paint_idle_id = 0; + } - G_OBJECT_CLASS (gdk_frame_clock_idle_parent_class)->finalize (object); + G_OBJECT_CLASS (gdk_frame_clock_idle_parent_class)->dispose (object); } static gint64 @@ -478,7 +485,7 @@ gdk_frame_clock_idle_class_init (GdkFrameClockIdleClass *klass) GObjectClass *gobject_class = (GObjectClass*) klass; GdkFrameClockClass *frame_clock_class = (GdkFrameClockClass *)klass; - gobject_class->finalize = gdk_frame_clock_idle_finalize; + gobject_class->dispose = gdk_frame_clock_idle_dispose; frame_clock_class->get_frame_time = gdk_frame_clock_idle_get_frame_time; frame_clock_class->request_phase = gdk_frame_clock_idle_request_phase; |