diff -r f7f0874bfe7d -r 6b87b143d312 photosgallery/viewframework/tvout/src/glxtvconnectionmonitor.cpp --- a/photosgallery/viewframework/tvout/src/glxtvconnectionmonitor.cpp Tue Feb 02 10:12:14 2010 +0200 +++ b/photosgallery/viewframework/tvout/src/glxtvconnectionmonitor.cpp Fri Feb 19 22:51:01 2010 +0200 @@ -177,9 +177,20 @@ void CGlxTvConnectionMonitor::IssueNotificationL() { GLX_LOG_INFO("CGlxTvConnectionMonitor::IssueNotificationL"); + TBool previousTvState = iTvOutConnectionState; + TBool previousHDMIState = iHDMIConnectionState; + GLX_LOG_INFO2("previousTvState = %d , previousHDMIState = %d", + previousTvState,previousHDMIState); iTvOutConnectionState = ( iCurrentAccMode.iAccessoryMode == EAccModeTVOut); iHDMIConnectionState = ( iCurrentAccMode.iAccessoryMode == EAccModeHDMI); - iConnectionObserver.HandleTvConnectionStatusChangedL(); + // Call Statuschnage only if actually TvState or HDMIState has changed. + if ( previousTvState!= iTvOutConnectionState || + previousHDMIState != iHDMIConnectionState) + { + GLX_LOG_INFO("CGlxTvConnectionMonitor::IssueNotificationL -" + " TvConnectionStatusChanged"); + iConnectionObserver.HandleTvConnectionStatusChangedL(); + } }