From: Ray Strode Date: Tue, 5 Aug 2008 21:21:47 +0000 (-0400) Subject: Detect if the entry is hidden and don't draw it in that case X-Git-Tag: 0.6.0~219 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2e3974e86aaabe0e206a4e33a088f1cde444d67c;p=thirdparty%2Fplymouth.git Detect if the entry is hidden and don't draw it in that case --- diff --git a/src/libplybootsplash/ply-entry.c b/src/libplybootsplash/ply-entry.c index 0145ab49..074493b3 100644 --- a/src/libplybootsplash/ply-entry.c +++ b/src/libplybootsplash/ply-entry.c @@ -67,6 +67,8 @@ struct _ply_entry int number_of_bullets; int max_number_of_visible_bullets; + + uint32_t is_hidden : 1; }; ply_entry_t * @@ -89,6 +91,8 @@ ply_entry_new (const char *image_dir) entry->bullet_image = ply_image_new (image_path); free (image_path); + entry->is_hidden = true; + return entry; } @@ -145,6 +149,9 @@ ply_entry_draw (ply_entry_t *entry) uint32_t *text_field_data, *bullet_data; int i, number_of_visible_bullets; + if (entry->is_hidden) + return; + ply_frame_buffer_pause_updates (entry->frame_buffer); text_field_data = ply_image_get_data (entry->text_field_image); @@ -219,6 +226,8 @@ ply_entry_show (ply_entry_t *entry, entry->area.x = x; entry->area.y = y; + entry->is_hidden = false; + ply_entry_draw (entry); } @@ -229,6 +238,15 @@ ply_entry_hide (ply_entry_t *entry) entry->frame_buffer = NULL; entry->window = NULL; + entry->loop = NULL; + + entry->is_hidden = true; +} + +bool +ply_entry_is_hidden (ply_entry_t *entry) +{ + return entry->is_hidden; } long diff --git a/src/libplybootsplash/ply-entry.h b/src/libplybootsplash/ply-entry.h index 81dd23d1..c701185c 100644 --- a/src/libplybootsplash/ply-entry.h +++ b/src/libplybootsplash/ply-entry.h @@ -44,6 +44,7 @@ void ply_entry_show (ply_entry_t *entry, long y); void ply_entry_hide (ply_entry_t *entry); void ply_entry_draw (ply_entry_t *entry); +bool ply_entry_is_hidden (ply_entry_t *entry); long ply_entry_get_width (ply_entry_t *entry); long ply_entry_get_height (ply_entry_t *entry); diff --git a/src/splash-plugins/spinfinity/plugin.c b/src/splash-plugins/spinfinity/plugin.c index 7baba615..b4fe3bb3 100644 --- a/src/splash-plugins/spinfinity/plugin.c +++ b/src/splash-plugins/spinfinity/plugin.c @@ -449,8 +449,13 @@ ask_for_password (ply_boot_splash_plugin_t *plugin, { plugin->pending_password_answer = answer; - stop_animation (plugin); - show_password_entry (plugin); + if (ply_entry_is_hidden (plugin->entry)) + { + stop_animation (plugin); + show_password_entry (plugin); + } + else + ply_entry_draw (plugin->entry); } ply_boot_splash_plugin_interface_t *