From 5741789dd874a3156b9c55a99b25bfa2053170b5 Mon Sep 17 00:00:00 2001 From: Laurent Aimar Date: Thu, 20 May 2010 23:06:58 +0200 Subject: [PATCH] Allowed vout_display_DeleteWindow(vd, NULL) to destroy unused window. --- include/vlc_vout_display.h | 4 ++++ src/video_output/video_output.c | 9 +++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/include/vlc_vout_display.h b/include/vlc_vout_display.h index 6f5b35f2eb..8b32efceef 100644 --- a/include/vlc_vout_display.h +++ b/include/vlc_vout_display.h @@ -389,6 +389,10 @@ static inline vout_window_t *vout_display_NewWindow(vout_display_t *vd, const vo { return vd->owner.window_new(vd, cfg); } +/** + * Deletes a window created by vout_display_NewWindow if window is non NULL + * or any unused windows otherwise. + */ static inline void vout_display_DeleteWindow(vout_display_t *vd, vout_window_t *window) { diff --git a/src/video_output/video_output.c b/src/video_output/video_output.c index 21c4a8c12d..f9d8de29d6 100644 --- a/src/video_output/video_output.c +++ b/src/video_output/video_output.c @@ -504,10 +504,15 @@ void vout_DeleteDisplayWindow(vout_thread_t *vout, vout_display_t *vd, vout_window_t *window) { VLC_UNUSED(vd); - if (!vout->p->window.is_unused && vout->p->window.object == window) + if (!vout->p->window.is_unused && vout->p->window.object == window) { vout->p->window.is_unused = true; - else + } else if (vout->p->window.is_unused && vout->p->window.object && !window) { + vout_window_Delete(vout->p->window.object); + vout->p->window.is_unused = true; + vout->p->window.object = NULL; + } else if (window) { vout_window_Delete(window); + } } /* */ -- 2.39.5