+2009-03-30 Nickolay V. Shmyrev <nshmyrev@yandex.ru>
+
+ * libview/ev-transition-animation.c:
+ (ev_transition_animation_paint), (ev_transition_animation_ready):
+
+ Animation is ready only when origin surface is ready. This fixes
+ fading animations because otherwise next page is displayed
+ before animaiton starts.
+
2009-03-26 Nickolay V. Shmyrev <nshmyrev@yandex.ru>
* test/Makefile.am:
g_return_if_fail (EV_IS_TRANSITION_ANIMATION (animation));
priv = EV_TRANSITION_ANIMATION_GET_PRIVATE (animation);
- g_object_get (priv->effect, "type", &type, NULL);
- progress = ev_timeline_get_progress (EV_TIMELINE (animation));
if (!priv->dest_surface) {
/* animation is still not ready, paint the origin surface */
return;
}
+ g_object_get (priv->effect, "type", &type, NULL);
+ progress = ev_timeline_get_progress (EV_TIMELINE (animation));
+
switch (type) {
case EV_TRANSITION_EFFECT_REPLACE:
/* just paint the destination slide */
priv = EV_TRANSITION_ANIMATION_GET_PRIVATE (animation);
- return (priv->origin_surface && priv->dest_surface);
+ return (priv->origin_surface != NULL);
}
cairo_t *cr;
gint i;
- if (view->animation && ev_transition_animation_ready (view->animation)) {
- GdkRectangle page_area;
- GtkBorder border;
+ if (view->animation) {
+ if (ev_transition_animation_ready (view->animation)) {
+ GdkRectangle page_area;
+ GtkBorder border;
- if (get_page_extents (view, view->current_page, &page_area, &border)) {
- cr = gdk_cairo_create (view->layout.bin_window);
+ if (get_page_extents (view, view->current_page, &page_area, &border)) {
+ cr = gdk_cairo_create (view->layout.bin_window);
- /* normalize to x=0, y=0 */
- cairo_translate (cr, page_area.x, page_area.y);
- page_area.x = page_area.y = 0;
+ /* normalize to x=0, y=0 */
+ cairo_translate (cr, page_area.x, page_area.y);
+ page_area.x = page_area.y = 0;
- ev_transition_animation_paint (view->animation, cr, page_area);
- cairo_destroy (cr);
+ ev_transition_animation_paint (view->animation, cr, page_area);
+ cairo_destroy (cr);
+ }
}
return TRUE;