Index: TvFullScreen.cs =================================================================== --- TvFullScreen.cs (revision 28100) +++ TvFullScreen.cs (working copy) @@ -482,12 +482,7 @@ } else { - TvMiniGuide miniGuide = (TvMiniGuide)GUIWindowManager.GetWindow((int)Window.WINDOW_MINI_GUIDE); - _isDialogVisible = true; - miniGuide.AutoZap = true; - miniGuide.DoModal(GetID); - _isDialogVisible = false; - + ShowMiniEpg(); // LastChannel has been moved to "0" //if (!GUIWindowManager.IsRouted) //{ @@ -929,6 +924,16 @@ base.OnAction(action); } + private void ShowMiniEpg() + { + TVHome.Navigator.CheckChannelChange(); + TvMiniGuide miniGuide = (TvMiniGuide)GUIWindowManager.GetWindow((int)Window.WINDOW_MINI_GUIDE); + _isDialogVisible = true; + miniGuide.AutoZap = true; + miniGuide.DoModal(GetID); + _isDialogVisible = false; + } + public override void SetObject(object obj) { base.SetObject(obj); @@ -1607,13 +1612,7 @@ case 10104: // MiniEPG { - Log.Debug("get miniguide"); - TvMiniGuide miniGuide = (TvMiniGuide)GUIWindowManager.GetWindow((int)Window.WINDOW_MINI_GUIDE); - _isDialogVisible = true; - Log.Debug("show miniguide"); - miniGuide.DoModal(GetID); - Log.Debug("done miniguide"); - _isDialogVisible = false; + ShowMiniEpg(); break; } @@ -1933,6 +1932,7 @@ { return; } + TVHome.Navigator.CheckChannelChange(); Program currentProgram = TVHome.Navigator.GetChannel(TVHome.Navigator.Channel.IdChannel).CurrentProgram; if (currentProgram == null) @@ -2622,7 +2622,10 @@ // Let the navigator zap channel if needed - TVHome.Navigator.CheckChannelChange(); + if (TVHome.UserChannelChanged) + { + TVHome.Navigator.CheckChannelChange(); + } //Log.Debug("osd visible:{0} timeoutvalue:{1}", _zapOsdVisible ,_zapTimeOutValue); if (_zapOsdVisible && _zapTimeOutValue > 0) { @@ -2828,6 +2831,7 @@ _osdTimeoutTimer = DateTime.Now; if (!_zapOsdVisible) { + TVHome.Navigator.CheckChannelChange(); GUIMessage msg = new GUIMessage(GUIMessage.MessageType.GUI_MSG_WINDOW_INIT, _osdWindow.GetID, 0, 0, GetID, 0, null); _osdWindow.OnMessage(msg); // Send an init msg to the OSD Index: TVHome.cs =================================================================== --- TVHome.cs (revision 28100) +++ TVHome.cs (working copy) @@ -713,34 +713,39 @@ return; } - UpdateRecordingIndicator(); - UpdateStateOfRecButton(); - - if (!Card.IsTimeShifting) + try { - UpdateProgressPercentageBar(); - // mantis #2218 : TV guide information in TV home screen does not update when program changes if TV is not playing - return; - } + UpdateRecordingIndicator(); + UpdateStateOfRecButton(); - // BAV, 02.03.08: a channel change should not be delayed by rendering. - // by moving thisthe 1 min delays in zapping should be fixed - // Let the navigator zap channel if needed - if (Navigator.CheckChannelChange()) - { - UpdateGUIonPlaybackStateChange(); - } + if (!Card.IsTimeShifting) + { + UpdateProgressPercentageBar(); + // mantis #2218 : TV guide information in TV home screen does not update when program changes if TV is not playing + return; + } - if (GUIGraphicsContext.InVmr9Render) - { - return; - } + // BAV, 02.03.08: a channel change should not be delayed by rendering. + // by moving thisthe 1 min delays in zapping should be fixed + // Let the navigator zap channel if needed + if (Navigator.CheckChannelChange()) + { + UpdateGUIonPlaybackStateChange(); + } - ShowCiMenu(); + if (GUIGraphicsContext.InVmr9Render) + { + return; + } - doProcess(); + ShowCiMenu(); - _updateTimer = DateTime.Now; + doProcess(); + } + finally + { + _updateTimer = DateTime.Now; + } } public override bool IsTv @@ -1051,6 +1056,7 @@ public static bool UserChannelChanged { set { _userChannelChanged = value; } + get { return _userChannelChanged; } } public static TVUtil Util @@ -3491,6 +3497,7 @@ finally { StopRenderBlackImage(); + _userChannelChanged = false; } }