From eed536ba544dee38aee3c697efd2e3980362954a Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Mon, 4 May 2009 17:17:36 -0400 Subject: [PATCH] [two-step] pull trigger right away if already idle The trigger always needs to get pulled so that the daemon knows that it can quit. Previously, we weren't pulling it if two-step was already idle. This meant that plymouthd never quit. --- src/plugins/splash/two-step/plugin.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/plugins/splash/two-step/plugin.c b/src/plugins/splash/two-step/plugin.c index f0fd0a87..4008119b 100644 --- a/src/plugins/splash/two-step/plugin.c +++ b/src/plugins/splash/two-step/plugin.c @@ -106,6 +106,7 @@ struct _ply_boot_splash_plugin uint32_t root_is_mounted : 1; uint32_t is_visible : 1; uint32_t is_animating : 1; + uint32_t is_idle : 1; }; static void add_handlers (ply_boot_splash_plugin_t *plugin); @@ -277,6 +278,8 @@ start_animation (ply_boot_splash_plugin_t *plugin) if (plugin->is_animating) return; + plugin->is_idle = false; + draw_background (plugin, NULL); if (plugin->mode == PLY_BOOT_SPLASH_MODE_SHUTDOWN) @@ -577,6 +580,7 @@ on_animation_stopped (ply_boot_splash_plugin_t *plugin) ply_trigger_pull (plugin->idle_trigger, NULL); plugin->idle_trigger = NULL; } + plugin->is_idle = true; } void @@ -716,6 +720,12 @@ void become_idle (ply_boot_splash_plugin_t *plugin, ply_trigger_t *idle_trigger) { + if (plugin->is_idle) + { + ply_trigger_pull (idle_trigger, NULL); + return; + } + plugin->idle_trigger = idle_trigger; if (ply_animation_is_stopped (plugin->animation)) -- 2.47.3