diff options
Diffstat (limited to 'recmenuitem.c')
-rw-r--r-- | recmenuitem.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/recmenuitem.c b/recmenuitem.c index b8fca6d..e8edf79 100644 --- a/recmenuitem.c +++ b/recmenuitem.c @@ -1548,6 +1548,7 @@ cRecMenuItemTimer::cRecMenuItemTimer(const cTimer *timer, this->overlapStop = overlapStop; this->active = active; height = 3 * font->Height(); + pixmapStatus = NULL; pixmapIcons = NULL; } @@ -1585,6 +1586,8 @@ void cRecMenuItemTimer::Show(void) { } void cRecMenuItemTimer::Draw(void) { + if (!timer) + return; const cChannel *channel = timer->Channel(); int channelTransponder = 0; cString channelName = ""; @@ -1740,8 +1743,13 @@ cRecMenuItemTimerConflictHeader::~cRecMenuItemTimerConflictHeader(void) { } void cRecMenuItemTimerConflictHeader::SetPixmaps(void) { - pixmap = osdManager.requestPixmap(4, cRect(x, y, width, height)); - pixmapStatus = osdManager.requestPixmap(5, cRect(x, y, width, height)); + if (!pixmap) { + pixmap = osdManager.requestPixmap(4, cRect(x, y, width, height)); + pixmapStatus = osdManager.requestPixmap(5, cRect(x, y, width, height)); + } else { + pixmap->SetViewPort(cRect(x, y, width, height)); + pixmapStatus->SetViewPort(cRect(x, y, width, height)); + } pixmapStatus->Fill(clrTransparent); } |