summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--HISTORY2
-rw-r--r--tvguideosd.c20
2 files changed, 20 insertions, 2 deletions
diff --git a/HISTORY b/HISTORY
index 862bed6..5dc53a9 100644
--- a/HISTORY
+++ b/HISTORY
@@ -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
diff --git a/tvguideosd.c b/tvguideosd.c
index 34a1d5a..a10cd01 100644
--- a/tvguideosd.c
+++ b/tvguideosd.c
@@ -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();
}