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);
if (plugin->is_animating)
return;
+ plugin->is_idle = false;
+
draw_background (plugin, NULL);
if (plugin->mode == PLY_BOOT_SPLASH_MODE_SHUTDOWN)
ply_trigger_pull (plugin->idle_trigger, NULL);
plugin->idle_trigger = NULL;
}
+ plugin->is_idle = true;
}
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))