diff options
author | Robin Haberkorn <robin.haberkorn@googlemail.com> | 2012-06-12 17:26:00 +0200 |
---|---|---|
committer | Robin Haberkorn <robin.haberkorn@googlemail.com> | 2012-06-12 17:29:46 +0200 |
commit | 68141b1fb33a1bf8497248e3d341d62487df2092 (patch) | |
tree | cf55e537f503759603fed4f8e441d1759c9ae2df /lib/gtk-experiment-widgets | |
parent | 95d42f9a3236a3415a4d30aa823520123e21ea0d (diff) | |
download | gtk-vlc-player-68141b1fb33a1bf8497248e3d341d62487df2092.tar.gz |
resolve numeric instability when calculating contribution pixel positions
the pixel distance between contributions must be independant of the current time to avoid flickering in the text rendering when time progresses
Diffstat (limited to 'lib/gtk-experiment-widgets')
-rw-r--r-- | lib/gtk-experiment-widgets/gtk-experiment-transcript.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/gtk-experiment-widgets/gtk-experiment-transcript.c b/lib/gtk-experiment-widgets/gtk-experiment-transcript.c index b33d230..d722d94 100644 --- a/lib/gtk-experiment-widgets/gtk-experiment-transcript.c +++ b/lib/gtk-experiment-widgets/gtk-experiment-transcript.c @@ -406,7 +406,7 @@ gtk_experiment_transcript_text_layer_redraw(GtkExperimentTranscript *trans) { GtkWidget *widget = GTK_WIDGET(trans); - gint64 current_time = 0; + gint64 current_time = 0, current_time_px; gint last_contrib_y = -1; gdk_draw_rectangle(GDK_DRAWABLE(trans->priv->layer_text), @@ -427,6 +427,7 @@ gtk_experiment_transcript_text_layer_redraw(GtkExperimentTranscript *trans) if (trans->priv->time_adjustment != NULL) current_time = (gint64)gtk_adjustment_get_value(GTK_ADJUSTMENT(trans->priv->time_adjustment)); + current_time_px = TIME_TO_PX(current_time); for (GList *cur = experiment_reader_get_contribution_by_time( trans->priv->contribs, @@ -437,7 +438,7 @@ gtk_experiment_transcript_text_layer_redraw(GtkExperimentTranscript *trans) cur->data; gint y = widget->allocation.height - - TIME_TO_PX(current_time - contrib->start_time); + (current_time_px - TIME_TO_PX(contrib->start_time)); int logical_height; PangoAttrList *attrib_list; |