uint32_t is_inactive : 1;
uint32_t is_shown : 1;
uint32_t should_force_details : 1;
+ uint32_t splash_is_becoming_idle : 1;
char *override_splash_path;
char *system_default_splash_path;
ply_trace ("deactivating splash");
deactivate_splash (state);
}
+
+ state->splash_is_becoming_idle = false;
}
static void
ply_device_manager_deactivate_keyboards (state->device_manager);
if (state->boot_splash != NULL) {
- ply_boot_splash_become_idle (state->boot_splash,
- (ply_boot_splash_on_idle_handler_t)
- on_boot_splash_idle,
- state);
+ if (!state->splash_is_becoming_idle) {
+ ply_boot_splash_become_idle (state->boot_splash,
+ (ply_boot_splash_on_idle_handler_t)
+ on_boot_splash_idle,
+ state);
+ state->splash_is_becoming_idle = true;
+ }
} else {
ply_trace ("deactivating splash");
deactivate_splash (state);
dump_details_and_quit_splash (state);
quit_program (state);
} else if (state->boot_splash != NULL) {
- ply_boot_splash_become_idle (state->boot_splash,
- (ply_boot_splash_on_idle_handler_t)
- on_boot_splash_idle,
- state);
+ if (!state->splash_is_becoming_idle) {
+ ply_boot_splash_become_idle (state->boot_splash,
+ (ply_boot_splash_on_idle_handler_t)
+ on_boot_splash_idle,
+ state);
+ state->splash_is_becoming_idle = true;
+ }
} else {
quit_program (state);
}