From f51872613abaaa42c716e2fe6a2e4695c529dc4b Mon Sep 17 00:00:00 2001 From: Carlos Garnacho Date: Fri, 29 Feb 2008 09:23:30 +0000 Subject: [PATCH] Added. Returns whether the animation has everything necessary to run. Do 2008-02-29 Carlos Garnacho * shell/ev-transition-animation.[ch] (ev_transition_animation_ready): Added. Returns whether the animation has everything necessary to run. * shell/ev-view.c (ev_view_expose_event): Do not assume the animation is ready just because it's been created. Fixes #519106. (draw_one_page): Do not show the "Loading..." text in presentation mode, there was a slim probability that this could happen. svn path=/trunk/; revision=2933 --- ChangeLog | 9 +++++++++ shell/ev-transition-animation.c | 12 ++++++++++++ shell/ev-transition-animation.h | 2 ++ shell/ev-view.c | 11 +++++++---- 4 files changed, 30 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 1517b4b1..8cd1d17c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2008-02-29 Carlos Garnacho + + * shell/ev-transition-animation.[ch] (ev_transition_animation_ready): + Added. Returns whether the animation has everything necessary to run. + * shell/ev-view.c (ev_view_expose_event): Do not assume the animation + is ready just because it's been created. Fixes #519106. + (draw_one_page): Do not show the "Loading..." text in presentation + mode, there was a slim probability that this could happen. + 2008-02-27 Carlos Garcia Campos * libdocument/ev-document-factory.c: (get_mime_type_from_uri): diff --git a/shell/ev-transition-animation.c b/shell/ev-transition-animation.c index 5bea280c..148b4c77 100644 --- a/shell/ev-transition-animation.c +++ b/shell/ev-transition-animation.c @@ -668,3 +668,15 @@ ev_transition_animation_set_dest_surface (EvTransitionAnimation *animation, if (priv->origin_surface && priv->dest_surface) ev_timeline_start (EV_TIMELINE (animation)); } + +gboolean +ev_transition_animation_ready (EvTransitionAnimation *animation) +{ + EvTransitionAnimationPriv *priv; + + g_return_val_if_fail (EV_IS_TRANSITION_ANIMATION (animation), FALSE); + + priv = EV_TRANSITION_ANIMATION_GET_PRIVATE (animation); + + return (priv->origin_surface && priv->dest_surface); +} diff --git a/shell/ev-transition-animation.h b/shell/ev-transition-animation.h index b07619fe..522caf28 100644 --- a/shell/ev-transition-animation.h +++ b/shell/ev-transition-animation.h @@ -60,6 +60,8 @@ gint ev_transition_animation_get_page_to (EvTransition void ev_transition_animation_paint (EvTransitionAnimation *animation, cairo_t *cr, GdkRectangle page_area); +gboolean ev_transition_animation_ready (EvTransitionAnimation *animation); + G_END_DECLS diff --git a/shell/ev-view.c b/shell/ev-view.c index 3b7a60dd..129d87c3 100644 --- a/shell/ev-view.c +++ b/shell/ev-view.c @@ -2483,7 +2483,7 @@ ev_view_expose_event (GtkWidget *widget, cairo_t *cr; gint i; - if (view->animation) { + if (view->animation && ev_transition_animation_ready (view->animation)) { GdkRectangle page_area; GtkBorder border; @@ -3739,9 +3739,12 @@ draw_one_page (EvView *view, page_surface = ev_pixbuf_cache_get_surface (view->pixbuf_cache, page); if (!page_surface) { - draw_loading_text (view, - &real_page_area, - expose_area); + if (!view->presentation) { + draw_loading_text (view, + &real_page_area, + expose_area); + } + *page_ready = FALSE; return; -- 2.43.5