From 722895a1f8d9e65039c6e2dd6fbf3bdaa6c3f177 Mon Sep 17 00:00:00 2001 From: phintuka Date: Tue, 30 Oct 2007 20:33:34 +0000 Subject: Fix SetAreas(): old windows must be closed (window count can be changed). This should fix old subtitles shown under new ones with vdr-1.5.10. (Thanks to Petri Helin) --- osd.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/osd.c b/osd.c index 8a6840d7..9b9c8ab1 100644 --- a/osd.c +++ b/osd.c @@ -4,7 +4,7 @@ * See the main source file 'xineliboutput.c' for copyright information and * how to reach the author. * - * $Id: osd.c,v 1.11 2007-10-30 20:30:23 phintuka Exp $ + * $Id: osd.c,v 1.12 2007-10-30 20:33:34 phintuka Exp $ * */ @@ -222,9 +222,11 @@ eOsdError cXinelibOsd::SetAreas(const tArea *Areas, int NumAreas) TRACEF("cXinelibOsd::SetAreas"); cMutexLock ml(&m_Lock); + LOGOSD("cXinelibOsd::SetAreas, m_Shown = %s", m_Shown ? "true" : "false"); + + CloseWindows(); + eOsdError Result = cOsd::SetAreas(Areas, NumAreas); - if(Result == oeOk) - m_Shown = false; if(Left() + Width() > 720 || Top() + Height() > 576) { LOGDBG("Detected HD OSD, size > %dx%d, using setup values %dx%d", @@ -242,7 +244,6 @@ eOsdError cXinelibOsd::CanHandleAreas(const tArea *Areas, int NumAreas) { TRACEF("cXinelibOsd::CanHandleAreas"); - m_Shown = false; eOsdError Result = cOsd::CanHandleAreas(Areas, NumAreas); if (Result == oeOk) { if (NumAreas > MAX_OSD_OBJECT) -- cgit v1.2.3