diff --git a/src/Canvas.cpp b/src/Canvas.cpp
index c01021c..1c66a6c 100644
--- a/src/Canvas.cpp
+++ b/src/Canvas.cpp
@@ -760,6 +760,18 @@ GanvCanvasImpl::layout_dot(const std::string& filename)
 }
 #endif
 
+inline uint64_t
+get_monotonic_time()
+{
+#if GLIB_CHECK_VERSION(2, 28, 0)
+	return g_get_monotonic_time();
+#else
+	GTimeVal time;
+	g_get_current_time(&time);
+	return time.tv_sec + time.tv_usec;
+#endif
+}
+
 #ifdef GANV_FDGL
 
 inline Region
@@ -788,18 +800,6 @@ apply_force(GanvNode* a, GanvNode* b, const Vector& f)
 	b->impl->force = vec_sub(b->impl->force, f);
 }
 
-inline uint64_t
-get_monotonic_time()
-{
-#if GLIB_CHECK_VERSION(2, 28, 0)
-	return g_get_monotonic_time();
-#else
-	GTimeVal time;
-	g_get_current_time(&time);
-	return time.tv_sec + time.tv_usec;
-#endif
-}
-
 gboolean
 GanvCanvasImpl::layout_iteration()
 {
