diff -ruN vdr-2/skinsttng.c vdr-1/skinsttng.c --- vdr-2/skinsttng.c 2012-09-09 13:39:06.000000000 +0200 +++ vdr-1/skinsttng.c 2012-09-10 22:24:05.000000000 +0200 @@ -398,7 +398,7 @@ private: cOsd *osd; int x0, x1, x2, x3, x4, x5, x6, x7; - int y0, y1, y2, y3, y4, y5, y6, y7; + int y0, y1, y2, y3, y4, y5, y52, y6, y7; int lineHeight; tColor frameColor; int currentIndex; @@ -451,7 +451,8 @@ y7 = cOsd::OsdHeight(); y6 = y7 - cFont::GetFont(fontSml)->Height(); y5 = y6 - Roundness; - y4 = y5 - Gap; + y52 = y6 - cFont::GetFont(fontSml)->Height(); + y4 = min (y5 - Gap, y6 - cFont::GetFont(fontSml)->Height()); int yt = (y0 + y1) / 2; int yb = (y6 + y7) / 2; osd = cOsdProvider::NewOsd(cOsd::OsdLeft(), cOsd::OsdTop()); @@ -597,13 +598,13 @@ void cSkinSTTNGDisplayMenu::SetMessage(eMessageType Type, const char *Text) { const cFont *font = cFont::GetFont(fontSml); + osd->RestoreRegion(); if (Text) { - osd->SaveRegion(x3, y6, x4 - 1, y7 - 1); - osd->DrawText(x3, y6, Text, Theme.Color(clrMessageStatusFg + 2 * Type), Theme.Color(clrMessageStatusBg + 2 * Type), font, x4 - x3, 0, taCenter); + osd->SaveRegion(x3, y52-1, x4 - 1, y6-1); + osd->DrawText(x3, y52-1, Text, Theme.Color(clrMessageStatusFg + 2 * Type), Theme.Color(clrMessageStatusBg + 2 * Type), font, x4 - x3, 0, taCenter); message = true; } else { - osd->RestoreRegion(); message = false; } }