--- kaffeine/src/input/dvb/dvbpanel.cpp 2008-11-19 14:26:25.000000000 +0100 +++ kaffeine/src/input/dvb/dvbpanel.new.cpp 2008-11-19 14:26:22.000000000 +0100 @@ -812,26 +812,32 @@ int mychan = -1; - if (browseDvbStream == -1) - mychan = dvbConfig->lastChannel; - else - mychan = browseDvbStream + skip; - - if (mychan < minChannelNumber) - mychan = maxChannelNumber; - else if (mychan > maxChannelNumber) - mychan = minChannelNumber; + while(!chan) + { + if (browseDvbStream == -1) + mychan = dvbConfig->lastChannel; + else + mychan = browseDvbStream + skip; - for (int i = 0; i < (int)channels.count(); i ++) { - if ((int) channels.at(i)->num == mychan) { - chan = channels.at(i); - break; + if (mychan < minChannelNumber) + mychan = maxChannelNumber; + else if (mychan > maxChannelNumber) + mychan = minChannelNumber; + + for (int i = 0; i < (int)channels.count(); i ++) { + if ((int) channels.at(i)->num == mychan) { + chan = channels.at(i); + break; + } } + + if(skip < 0) + skip --; + if (skip > 0) + skip ++; + } - if (!chan) - return; - for (int j = 0; j < (int)dvb.count(); j ++) { if (dvb.at(j)->canSource(chan)) { d = dvb.at(j);