From: Ray Strode Date: Wed, 23 Mar 2011 15:32:14 +0000 (-0400) Subject: two-step: make progress animation optional X-Git-Tag: 0.8.4~54 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4c233ce2cbd5e6a65799febb75387c878713ab88;p=thirdparty%2Fplymouth.git two-step: make progress animation optional --- diff --git a/src/plugins/splash/two-step/plugin.c b/src/plugins/splash/two-step/plugin.c index e93ff1b5..9edc4bfa 100644 --- a/src/plugins/splash/two-step/plugin.c +++ b/src/plugins/splash/two-step/plugin.c @@ -211,8 +211,9 @@ view_load (view_t *view) ply_trace ("loading progress animation"); if (!ply_progress_animation_load (view->progress_animation)) { - ply_trace ("progress animation wouldn't load"); - return false; + ply_trace ("optional progress animation wouldn't load"); + ply_progress_animation_free (view->progress_animation); + view->progress_animation = NULL; } if (view->throbber != NULL) @@ -364,7 +365,8 @@ static void on_view_throbber_stopped (view_t *view) { ply_trace ("hiding progress animation"); - ply_progress_animation_hide (view->progress_animation); + if (view->progress_animation != NULL) + ply_progress_animation_hide (view->progress_animation); view_start_end_animation (view, view->end_trigger); view->end_trigger = NULL; } @@ -422,15 +424,17 @@ view_start_progress_animation (view_t *view) return; } - width = ply_progress_animation_get_width (view->progress_animation); - height = ply_progress_animation_get_height (view->progress_animation); - x = plugin->animation_horizontal_alignment * screen_width - width / 2.0; - y = plugin->animation_vertical_alignment * screen_height - height / 2.0; - ply_progress_animation_show (view->progress_animation, - view->display, x, y); - - ply_pixel_display_draw_area (view->display, x, y, width, height); + if (view->progress_animation != NULL) + { + width = ply_progress_animation_get_width (view->progress_animation); + height = ply_progress_animation_get_height (view->progress_animation); + x = plugin->animation_horizontal_alignment * screen_width - width / 2.0; + y = plugin->animation_vertical_alignment * screen_height - height / 2.0; + ply_progress_animation_show (view->progress_animation, + view->display, x, y); + ply_pixel_display_draw_area (view->display, x, y, width, height); + } } static void @@ -697,8 +701,11 @@ start_end_animation (ply_boot_splash_plugin_t *plugin, } else { - ply_trace ("hiding progress animation"); - ply_progress_animation_hide (view->progress_animation); + if (view->progress_animation != NULL) + { + ply_trace ("hiding progress animation"); + ply_progress_animation_hide (view->progress_animation); + } view_start_end_animation (view, trigger); } @@ -760,8 +767,11 @@ stop_animation (ply_boot_splash_plugin_t *plugin, view = ply_list_node_get_data (node); next_node = ply_list_get_next_node (plugin->views, node); - ply_trace ("hiding progress animation"); - ply_progress_animation_hide (view->progress_animation); + if (view->progress_animation != NULL) + { + ply_trace ("hiding progress animation"); + ply_progress_animation_hide (view->progress_animation); + } if (trigger != NULL) ply_trigger_ignore_next_pull (trigger); if (view->throbber != NULL) @@ -863,7 +873,7 @@ on_draw (view_t *view, ply_throbber_draw_area (view->throbber, pixel_buffer, x, y, width, height); } - if (!ply_progress_animation_is_hidden (view->progress_animation)) + if (view->progress_animation != NULL && !ply_progress_animation_is_hidden (view->progress_animation)) { ply_progress_animation_draw_area (view->progress_animation, pixel_buffer, @@ -889,7 +899,11 @@ on_draw (view_t *view, { long sprite_height; - sprite_height = ply_progress_animation_get_height (view->progress_animation); + + if (view->progress_animation != NULL) + sprite_height = ply_progress_animation_get_height (view->progress_animation); + else + sprite_height = 0; if (view->throbber != NULL) sprite_height = MAX (ply_throbber_get_height (view->throbber), @@ -1049,8 +1063,9 @@ update_progress_animation (ply_boot_splash_plugin_t *plugin, view = ply_list_node_get_data (node); next_node = ply_list_get_next_node (plugin->views, node); - ply_progress_animation_set_percent_done (view->progress_animation, - percent_done); + if (view->progress_animation != NULL) + ply_progress_animation_set_percent_done (view->progress_animation, + percent_done); node = next_node; }