summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CONTRIBUTORS2
-rw-r--r--HISTORY3
-rw-r--r--MANUAL3
-rw-r--r--menu.c8
-rw-r--r--vdr.c11
5 files changed, 21 insertions, 6 deletions
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index 3af0210c..365e63e2 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -1600,6 +1600,8 @@ Andreas Brugger <brougs78@gmx.net>
for reporting a typo in the change to the "Use small font" setup option in version
1.3.47 in the HISTORY and CONTRIBUTORS file
for reporting a missing 'const' in cRecordingInfo::ChannelID()
+ for suggesting to propagate the kInfo key to any open menu, so that it can react to
+ it in a context sensitive manner
Dino Ravnic <dino.ravnic@fer.hr>
for fixing some characters in the iso8859-2 font file
diff --git a/HISTORY b/HISTORY
index 61c1f238..0ba9532e 100644
--- a/HISTORY
+++ b/HISTORY
@@ -5535,3 +5535,6 @@ Video Disk Recorder Revision History
Gregoire Favre).
- The new setup option "Miscellaneous/Emergency exit" can be used to turn off
the automatic restart of VDR in case a recording fails for some reason.
+- The kInfo key is now propagated to any open menu, so that it can react to it
+ in a context sensitive manner (suggested by Andreas Brugger). If there is
+ no menu open it will show the info of the current broadcast or replay.
diff --git a/MANUAL b/MANUAL
index 5bcadbf7..8798728d 100644
--- a/MANUAL
+++ b/MANUAL
@@ -37,7 +37,8 @@ Version 1.4
If your remote control provides additional keys, they can be used for the
following functions:
- Info display information on the currently viewed programme or recording
+ Info display information on the currently viewed programme or recording,
+ or on the current item in a menu
Play resume normal replay
Pause pause replay or live video
Stop stop replay
diff --git a/menu.c b/menu.c
index 06694fdc..43e401a7 100644
--- a/menu.c
+++ b/menu.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: menu.c 1.466 2007/11/25 13:47:38 kls Exp $
+ * $Id: menu.c 1.467 2007/11/25 14:52:03 kls Exp $
*/
#include "menu.h"
@@ -931,6 +931,7 @@ eOSState cMenuTimers::ProcessKey(eKeys Key)
case kRed: state = OnOff(); break; // must go through SetHelpKeys()!
case kGreen: return New();
case kYellow: state = Delete(); break;
+ case kInfo:
case kBlue: return Info();
break;
default: break;
@@ -986,6 +987,7 @@ eOSState cMenuEvent::ProcessKey(eKeys Key)
DisplayMenu()->Scroll(NORMALKEY(Key) == kUp || NORMALKEY(Key) == kLeft, NORMALKEY(Key) == kLeft || NORMALKEY(Key) == kRight);
cStatus::MsgOsdTextItem(NULL, NORMALKEY(Key) == kUp || NORMALKEY(Key) == kLeft);
return osContinue;
+ case kInfo: return osBack;
default: break;
}
@@ -1216,6 +1218,7 @@ eOSState cMenuWhatsOn::ProcessKey(eKeys Key)
}
break;
case kBlue: return Switch();
+ case kInfo:
case kOk: if (Count())
return AddSubMenu(new cMenuEvent(((cMenuScheduleItem *)Get(Current()))->event, true, true));
break;
@@ -1486,6 +1489,7 @@ eOSState cMenuSchedule::ProcessKey(eKeys Key)
case kBlue: if (Count() && otherChannel)
return Switch();
break;
+ case kInfo:
case kOk: if (Count())
return AddSubMenu(new cMenuEvent(((cMenuScheduleItem *)Get(Current()))->event, otherChannel, true));
break;
@@ -1815,6 +1819,7 @@ eOSState cMenuRecording::ProcessKey(eKeys Key)
DisplayMenu()->Scroll(NORMALKEY(Key) == kUp || NORMALKEY(Key) == kLeft, NORMALKEY(Key) == kLeft || NORMALKEY(Key) == kRight);
cStatus::MsgOsdTextItem(NULL, NORMALKEY(Key) == kUp || NORMALKEY(Key) == kLeft);
return osContinue;
+ case kInfo: return osBack;
default: break;
}
@@ -2112,6 +2117,7 @@ eOSState cMenuRecordings::ProcessKey(eKeys Key)
case kRed: return (helpKeys > 1 && RecordingCommands.Count()) ? Commands() : Play();
case kGreen: return Rewind();
case kYellow: return Delete();
+ case kInfo:
case kBlue: return Info();
case k1...k9: return Commands(Key);
case kNone: if (Recordings.StateChanged(recordingsState))
diff --git a/vdr.c b/vdr.c
index a4e6e1f4..34eee374 100644
--- a/vdr.c
+++ b/vdr.c
@@ -22,7 +22,7 @@
*
* The project's page is at http://www.cadsoft.de/vdr
*
- * $Id: vdr.c 1.302 2007/11/03 14:46:29 kls Exp $
+ * $Id: vdr.c 1.303 2007/11/25 15:11:33 kls Exp $
*/
#include <getopt.h>
@@ -914,9 +914,11 @@ int main(int argc, char *argv[])
break;
// Info:
case kInfo: {
- bool WasInfoMenu = IsInfoMenu;
- DELETE_MENU;
- if (!WasInfoMenu) {
+ if (IsInfoMenu) {
+ key = kNone; // nobody else needs to see this key
+ DELETE_MENU;
+ }
+ else if (!Menu) {
IsInfoMenu = true;
if (cControl::Control()) {
cControl::Control()->Hide();
@@ -930,6 +932,7 @@ int main(int argc, char *argv[])
cRemote::Put(kOk, true);
cRemote::Put(kSchedule, true);
}
+ key = kNone; // nobody else needs to see this key
}
}
break;