{
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)
{
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);
+ }
}
/* */