diff options
author | Frederic Crozat <fcrozat@suse.com> | 2014-06-19 16:18:12 +0200 |
---|---|---|
committer | Frederic Crozat <fcrozat@suse.com> | 2014-06-19 16:54:12 +0200 |
commit | ad75f014b1c362d6721b95e692b8face52f2f0a1 (patch) | |
tree | d9b372063f7444bac826fbef02020143e0b54648 | |
parent | 7091fe54a6afdda7e19fb38e115cdb7cedebb0d7 (diff) |
splash: remove pixel_display in sprite-lib when notified they are gone
-rw-r--r-- | src/plugins/splash/script/plugin.c | 1 | ||||
-rw-r--r-- | src/plugins/splash/script/script-lib-sprite.c | 20 | ||||
-rw-r--r-- | src/plugins/splash/script/script-lib-sprite.h | 1 |
3 files changed, 22 insertions, 0 deletions
diff --git a/src/plugins/splash/script/plugin.c b/src/plugins/splash/script/plugin.c index a89c114b..f3d72e55 100644 --- a/src/plugins/splash/script/plugin.c +++ b/src/plugins/splash/script/plugin.c @@ -395,6 +395,7 @@ static void remove_pixel_display (ply_boot_splash_plugin_t *plugin, ply_pixel_display_t *display) { + script_lib_sprite_pixel_display_removed (plugin->script_sprite_lib, display); ply_list_remove_data (plugin->displays, display); } diff --git a/src/plugins/splash/script/script-lib-sprite.c b/src/plugins/splash/script/script-lib-sprite.c index a4772e8c..64b5ddf6 100644 --- a/src/plugins/splash/script/script-lib-sprite.c +++ b/src/plugins/splash/script/script-lib-sprite.c @@ -686,6 +686,26 @@ region_add_area (ply_region_t *region, ply_region_add_rectangle (region, &rectangle); } +void script_lib_sprite_pixel_display_removed (script_lib_sprite_data_t *data, ply_pixel_display_t *pixel_display) +{ + ply_list_node_t *node; + ply_list_node_t *next_node; + script_lib_display_t* display; + + node = ply_list_get_first_node (data->displays); + while (node) + { + next_node = ply_list_get_next_node (data->displays, node); + display = ply_list_node_get_data (node); + + if (display->pixel_display == pixel_display) + { + ply_list_remove_node (data->displays, node); + } + node = next_node; + } +} + void script_lib_sprite_refresh (script_lib_sprite_data_t *data) { diff --git a/src/plugins/splash/script/script-lib-sprite.h b/src/plugins/splash/script/script-lib-sprite.h index 55105c3d..783fb763 100644 --- a/src/plugins/splash/script/script-lib-sprite.h +++ b/src/plugins/splash/script/script-lib-sprite.h @@ -65,6 +65,7 @@ typedef struct script_lib_sprite_data_t *script_lib_sprite_setup (script_state_t *state, ply_list_t *displays); +void script_lib_sprite_pixel_display_removed (script_lib_sprite_data_t *data, ply_pixel_display_t *pixel_display); void script_lib_sprite_refresh (script_lib_sprite_data_t *data); void script_lib_sprite_destroy (script_lib_sprite_data_t *data); |