diff options
Diffstat (limited to 'server/display-channel.c')
-rw-r--r-- | server/display-channel.c | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/server/display-channel.c b/server/display-channel.c index 3b7a0164..d455a0db 100644 --- a/server/display-channel.c +++ b/server/display-channel.c @@ -850,14 +850,26 @@ void display_channel_flush_all_surfaces(DisplayChannel *display) } } -static void rcc_free_glz_drawables_to_free(RedChannelClient *rcc) +void display_channel_free_glz_drawables_to_free(DisplayChannel *display) { - DisplayChannelClient *dcc = RCC_TO_DCC(rcc); + RingItem *link, *next; + DisplayChannelClient *dcc; - dcc_free_glz_drawables_to_free(dcc); + spice_return_if_fail(display); + + DCC_FOREACH_SAFE(link, next, dcc, RED_CHANNEL(display)) { + dcc_free_glz_drawables_to_free(dcc); + } } -void display_channel_free_glz_drawables_to_free(DisplayChannel *display) +void display_channel_free_glz_drawables(DisplayChannel *display) { - red_channel_apply_clients(RED_CHANNEL(display), rcc_free_glz_drawables_to_free); + RingItem *link, *next; + DisplayChannelClient *dcc; + + spice_return_if_fail(display); + + DCC_FOREACH_SAFE(link, next, dcc, RED_CHANNEL(display)) { + dcc_free_glz_drawables(dcc); + } } |