char ***argv)
{
const gchar *env_string;
+ double slowdown;
if (pre_initialized)
return;
g_string_append (gtk_modules_string, env_string);
}
+
+ env_string = g_getenv ("GTK_SLOWDOWN");
+ if (env_string)
+ {
+ slowdown = g_ascii_strtod (env_string, NULL);
+ _gtk_set_slowdown (slowdown);
+ }
}
static void
GdkEvent *event,
GtkWidget *topmost);
+
+gdouble _gtk_get_slowdown ();
+void _gtk_set_slowdown (gdouble slowdown_factor);
+
#ifdef G_OS_WIN32
void _gtk_load_dll_with_libgtk3_manifest (const char *dllname);
#endif
*/
#include "gtkprogresstrackerprivate.h"
+#include "gtkprivate.h"
#include "gtkcsseasevalueprivate.h"
#include <math.h>
*
* Progress tracker will handle translating frame clock timestamps to a
* fractional progress value for interpolating between animation targets.
+ *
+ * Progress tracker will use the GTK_SLOWDOWN environment variable to control
+ * the speed of animations. This can be useful for debugging.
*/
+static gdouble gtk_slowdown = 1.0;
+
+void
+_gtk_set_slowdown (gdouble factor)
+{
+ gtk_slowdown = factor;
+}
+
+gdouble
+_gtk_get_slowdown (gdouble factor)
+{
+ return gtk_slowdown;
+}
+
/**
* gtk_progress_tracker_init_copy:
* @source: The source progress tracker
return;
}
- delta = (frame_time - tracker->last_frame_time) / (gdouble) tracker->duration;
+ delta = (frame_time - tracker->last_frame_time) / gtk_slowdown / tracker->duration;
tracker->last_frame_time = frame_time;
tracker->iteration += delta;
}