diff --git a/src/neutrino.cpp b/src/neutrino.cpp index 6f988d5c5..a55be8789 100644 --- a/src/neutrino.cpp +++ b/src/neutrino.cpp @@ -233,7 +233,8 @@ CNeutrinoApp::CNeutrinoApp() favorites_changed = false; bouquets_changed = false; channels_init = false; - channellist_visible = false; + channelList_allowed = true; + channelList_painted = false; } /*------------------------------------------------------------------------------------- @@ -2490,10 +2491,18 @@ void CNeutrinoApp::RealRun(CMenuWidget &mainMenu) int CNeutrinoApp::showChannelList(const neutrino_msg_t _msg, bool from_menu) { + /* Exit here if paint of channlellist is not allowed, disallow could be possible, eg: if + * RC_ok or other stuff is shared with other window handlers and + * it's easy here to disable channellist paint if required! + */ + if (!channelList_allowed){ + channelList_allowed = true; + return menu_return::RETURN_NONE; + } + channelList_painted = false; + neutrino_msg_t msg = _msg; InfoClock->enableInfoClock(false); - channellist_visible = true; - StopSubtitles(); //_show: @@ -2582,7 +2591,8 @@ _repeat: SetChannelMode(LIST_MODE_FAV); } - channellist_visible = false; + channelList_painted = true; + if (!from_menu) InfoClock->enableInfoClock(true); diff --git a/src/neutrino.h b/src/neutrino.h index 51b000e51..424a05d03 100644 --- a/src/neutrino.h +++ b/src/neutrino.h @@ -105,7 +105,8 @@ private: int tvsort[LIST_MODE_LAST]; int radiosort[LIST_MODE_LAST]; - bool channellist_visible; + bool channelList_allowed; + bool channelList_painted; int first_mode_found; void SDT_ReloadChannels(); @@ -219,8 +220,9 @@ public: void saveEpg(bool cvfd_mode); void stopDaemonsForFlash(); int showChannelList(const neutrino_msg_t msg, bool from_menu = false); + void allowChannelList(bool allow){channelList_allowed = allow;} CPersonalizeGui & getPersonalizeGui() { return personalize; } - bool getChannellistIsVisible() { return channellist_visible; } + bool getChannellistIsVisible() { return channelList_painted; } void zapTo(t_channel_id channel_id); bool wakeupFromStandby(void); void standbyToStandby(void);