Current channel positioned in middle of channellist when tvguide is opened

This commit is contained in:
louis 2014-01-02 11:45:43 +01:00
parent e6335e9c44
commit 45428b5162
2 changed files with 20 additions and 2 deletions

View File

@ -98,3 +98,5 @@ Version 1.1.0
Tickets 1480 and 1486)
- Added possibility to search for reruns in case of a timer conflict
- Added timer Timeline view in red button recording menu
- Current channel positioned in middle of channellist when tvguide is
opened

View File

@ -74,6 +74,22 @@ void cTvGuideOsd::Show(void) {
void cTvGuideOsd::drawOsd() {
cPixmap::Lock();
cChannel *startChannel = Channels.GetByNumber(cDevice::CurrentChannel());
int numBack = tvguideConfig.numGrids / 2;
int offset = 0;
const cChannel *newStartChannel = startChannel;
for (; newStartChannel ; newStartChannel = Channels.Prev(newStartChannel)) {
if (newStartChannel && !newStartChannel->GroupSep()) {
offset++;
}
if (offset == numBack)
break;
}
if (!newStartChannel)
newStartChannel = Channels.First();
offset--;
if (offset < 0)
offset = 0;
if (tvguideConfig.displayStatusHeader) {
statusHeader = new cStatusHeader();
statusHeader->Draw();
@ -94,8 +110,8 @@ void cTvGuideOsd::drawOsd() {
}
footer->drawBlueButton();
osdManager.flush();
readChannels(startChannel);
drawGridsChannelJump();
readChannels(newStartChannel);
drawGridsChannelJump(offset);
osdManager.flush();
cPixmap::Unlock();
}