fix showing of infobar on servicechange via servicelist
[enigma2.git] / lib / python / Screens / InfoBarGenerics.py
index f8b6c7eac1a4eaafd6d04766fbc0d5e76d1ece13..da0e6d6ff746b0030b223b1a9ee004a775d44ec2 100644 (file)
@@ -96,11 +96,18 @@ class InfoBarShowHide:
                                if old_begin_time and old_begin_time != self.current_begin_time:
                                        self.doShow()
 
-       def __serviceStarted(self):
-               if self.execing:
+       def __serviceStarted(self, force=False):
+               new = self.servicelist.newServicePlayed()
+               if self.execing or force:
                        self.current_begin_time=0
                        if config.usage.show_infobar_on_zap.value:
                                self.doShow()
+               elif not self.__checkServiceStarted in self.onExecBegin and new:
+                       self.onExecBegin.append(self.__checkServiceStarted)
+
+       def __checkServiceStarted(self):
+               self.__serviceStarted(True)
+               self.onExecBegin.remove(self.__checkServiceStarted)
 
        def __onShow(self):
                self.__state = self.STATE_SHOWN