Blob Blame Raw
commit aae9aadc381d4f67326a25c80214c2b7ef04e10a
Author: Andreas Mair <amair.sob@googlemail.com>
Date:   Mon Apr 30 20:06:58 2012 +0200

    Fixed disappearing symbols in channel info osd if signal strength and quality are shown.

diff --git a/enigma.c b/enigma.c
index 826d671..97827de 100644
--- a/enigma.c
+++ b/enigma.c
@@ -335,7 +335,6 @@ cSkinEnigmaDisplayChannel::cSkinEnigmaDisplayChannel(bool WithInfo)
   fShowLogo = EnigmaConfig.showLogo;
   xFirstSymbol = 0;
 #ifndef DISABLE_SIGNALINFO
-  xSignalBarLeft = EnigmaConfig.showSignalInfo ? 0 : -1;
   nStrBarWidth = 10000;
   nSnrBarWidth = 10000;
 #if VDRVERSNUM < 10719
@@ -403,6 +402,9 @@ cSkinEnigmaDisplayChannel::cSkinEnigmaDisplayChannel(bool WithInfo)
   cString date = DayDateTime();
   int w = pFontDate->Width(date);
   xDateLeft = xTitleRight - xIndent - w - SmallGap;
+#ifndef DISABLE_SIGNALINFO
+  xSignalBarLeft = EnigmaConfig.showSignalInfo ? (xBottomRight - xIndent - MIN_CI_SIGNALBAR) : -1;
+#endif
 
   // create osd
   osd = cOsdProvider::NewOsd(OsdSize.x, OsdSize.y + (Setup.ChannelInfoPos ? 0 : (OsdSize.h - yBottomBottom)) );
@@ -553,7 +555,6 @@ void cSkinEnigmaDisplayChannel::DrawSymbols(const cChannel *Channel)
   int ys = yBottomTop + (yBottomBottom - yBottomTop - SymbolHeight) / 2;
 
 #ifndef DISABLE_SIGNALINFO
-  UpdateSignal();
   if (xSignalBarLeft >= 0)
     xs = xSignalBarLeft - Gap;
 #endif //DISABLE_SIGNALINFO
@@ -697,23 +698,18 @@ int cSkinEnigmaDisplayChannel::GetSignal(int &str, int &snr, fe_status_t & /* st
 }
 
 void cSkinEnigmaDisplayChannel::UpdateSignal() {
-  if (xSignalBarLeft < 0)
+  if (xSignalBarLeft <= 0)
     return;
 
   int str = -1;
   int snr = -1;
   fe_status_t status;
   if (GetSignal(str, snr, status) < 0)
-  {
-    xSignalBarLeft = -1;
     return;
-  }
 
   if (snr < 0 && str < 0)
     return;
 
-  xSignalBarLeft = xBottomRight - xIndent - MIN_CI_SIGNALBAR;
-
   int bw = MIN_CI_SIGNALBAR; //45;
   int xSignalBarRight = xSignalBarLeft + bw;