From: Andreas Monzner Date: Thu, 14 Jun 2007 21:09:07 +0000 (+0000) Subject: fix showing of infobar on servicechange via servicelist X-Git-Tag: 2.6.0~2175 X-Git-Url: https://git.cweiske.de/enigma2.git/commitdiff_plain/f412f2579647e5b4b9857acaa4a1b29ff191533e?hp=aac552982ff936e76416d0b478dbcbc54528a062 fix showing of infobar on servicechange via servicelist --- diff --git a/lib/python/Screens/ChannelSelection.py b/lib/python/Screens/ChannelSelection.py index 728cecf2..eb6f9059 100644 --- a/lib/python/Screens/ChannelSelection.py +++ b/lib/python/Screens/ChannelSelection.py @@ -1054,6 +1054,7 @@ class ChannelSelection(ChannelSelectionBase, ChannelSelectionEdit, ChannelSelect self.lastroot = config.tv.lastroot self.revertMode = None config.usage.multibouquet.addNotifier(self.multibouquet_config_changed) + self.new_service_played = False def multibouquet_config_changed(self, val): self.recallBouquetMode() @@ -1129,12 +1130,18 @@ class ChannelSelection(ChannelSelectionBase, ChannelSelectionEdit, ChannelSelect ref = self.session.nav.getCurrentlyPlayingServiceReference() nref = self.getCurrentSelection() if ref is None or ref != nref: + self.new_service_played = True self.session.nav.playService(nref) self.saveRoot() self.saveChannel(nref) config.servicelist.lastmode.save() self.addToHistory(nref) + def newServicePlayed(self): + ret = self.new_service_played + self.new_service_played = False + return ret + def addToHistory(self, ref): if self.servicePath is not None: tmp=self.servicePath[:] diff --git a/lib/python/Screens/InfoBarGenerics.py b/lib/python/Screens/InfoBarGenerics.py index f8b6c7ea..da0e6d6f 100644 --- a/lib/python/Screens/InfoBarGenerics.py +++ b/lib/python/Screens/InfoBarGenerics.py @@ -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