From f412f2579647e5b4b9857acaa4a1b29ff191533e Mon Sep 17 00:00:00 2001 From: Andreas Monzner Date: Thu, 14 Jun 2007 21:09:07 +0000 Subject: [PATCH 1/1] fix showing of infobar on servicechange via servicelist --- lib/python/Screens/ChannelSelection.py | 7 +++++++ lib/python/Screens/InfoBarGenerics.py | 11 +++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) 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 -- 2.30.2