diff --git a/src/gui/channellist.cpp b/src/gui/channellist.cpp index 90c72c92d..73d77c049 100644 --- a/src/gui/channellist.cpp +++ b/src/gui/channellist.cpp @@ -656,17 +656,23 @@ int CChannelList::show() } } else if(!edit_state && !empty && msg == CRCInput::RC_stop ) { //stop recording - //if(CRecordManager::getInstance()->RecordingStatus((*chanlist)[selected]->getChannelID())) - int recmode = CRecordManager::getInstance()->GetRecordMode((*chanlist)[selected]->getChannelID()); - bool timeshift = recmode & CRecordManager::RECMODE_TSHIFT; - bool tsplay = CMoviePlayerGui::getInstance().timeshift; - if (recmode && !(timeshift && tsplay)) - { - if (CRecordManager::getInstance()->AskToStop((*chanlist)[selected]->getChannelID())) + if(CRecordManager::getInstance()->RecordingStatus((*chanlist)[selected]->getChannelID())){ + int recmode = CRecordManager::getInstance()->GetRecordMode((*chanlist)[selected]->getChannelID()); + bool timeshift = recmode & CRecordManager::RECMODE_TSHIFT; + bool tsplay = CMoviePlayerGui::getInstance().timeshift; + if (recmode && !(timeshift && tsplay)) { - CRecordManager::getInstance()->Stop((*chanlist)[selected]->getChannelID()); - calcSize(); - paintBody(); + if (CRecordManager::getInstance()->AskToStop((*chanlist)[selected]->getChannelID())) + { + CRecordManager::getInstance()->Stop((*chanlist)[selected]->getChannelID()); + calcSize(); + paintBody(); + } + }else{ + // stop TSHIFT: go to play mode + g_RCInput->postMsg (msg, data); + res = CHANLIST_CANCEL_ALL; + loop = false; } } }