summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoranbr <vdr07@deltab.de>2014-02-23 17:23:24 +0100
committeranbr <vdr07@deltab.de>2014-02-23 17:23:24 +0100
commit21ff4641d19214a9c089339adf24e2d944b5db4b (patch)
tree34d2019a0653a7bd28b665523d4ce747939f9116
parent499640f70acab4058d1856df100d1f476f7fc3e2 (diff)
downloadvdr-plugin-dvdswitch-21ff4641d19214a9c089339adf24e2d944b5db4b.tar.gz
vdr-plugin-dvdswitch-21ff4641d19214a9c089339adf24e2d944b5db4b.tar.bz2
Fix: menu keystoke processing
-rw-r--r--commands.c14
-rw-r--r--dvdswitch.c2
2 files changed, 9 insertions, 7 deletions
diff --git a/commands.c b/commands.c
index db3c6dc..ad795af 100644
--- a/commands.c
+++ b/commands.c
@@ -394,10 +394,11 @@ eOSState cCMDDir::New(void)
eOSState cCMDDir::New(eKeys Key)
{
+ eOSState state = cOsdMenu::ProcessKey(Key);
switch(Key)
{
case kOk:
- if(!isempty(Dir))
+ if(state == osUnknown && !isempty(Dir))
{
char *buffer = NULL;
if(0 < asprintf(&buffer, "%s/%s", CurrentDir(), stripspace(Dir))) {
@@ -431,7 +432,7 @@ eOSState cCMDDir::New(eKeys Key)
break;
}
- return cOsdMenu::ProcessKey(Key);
+ return state;
}
@@ -484,10 +485,11 @@ eOSState cCMDDir::Edit(cMainMenuItem *mItem)
eOSState cCMDDir::Edit(eKeys Key)
{
+ eOSState state = cOsdMenu::ProcessKey(Key);
switch(Key)
{
case kOk:
- if(!isempty(Dir))
+ if(state == osUnknown && !isempty(Dir))
{
char *buffer = NULL;
if(0 < asprintf(&buffer, "%s/%s", CurrentDir(), stripspace(Dir))) {
@@ -520,7 +522,7 @@ eOSState cCMDDir::Edit(eKeys Key)
break;
}
- return cOsdMenu::ProcessKey(Key);
+ return state;
}
// --- cCMDMove -------------------------------------------------------------
@@ -793,13 +795,13 @@ void cCMDImageRead::SetHelp(void)
eOSState cCMDImageRead::ProcessKey(eKeys Key)
{
+ eOSState state = cOsdMenu::ProcessKey(Key);
if(!HasSubMenu())
{
switch(Key & ~k_Repeat)
{
case kUp:
case kDown:
- cOsdMenu::ProcessKey(Key);
SetHelp();
return osContinue;
case kRight:
@@ -860,7 +862,7 @@ eOSState cCMDImageRead::ProcessKey(eKeys Key)
}
}
- return cOsdMenu::ProcessKey(Key);
+ return state;
}
diff --git a/dvdswitch.c b/dvdswitch.c
index b2a0ffe..edcd6cc 100644
--- a/dvdswitch.c
+++ b/dvdswitch.c
@@ -18,7 +18,7 @@
#error "VDR-1.6.0 API version or greater is required!"
#endif
-static const char *VERSION = "0.2.2";
+static const char *VERSION = "0.2.3";
class cPluginDvdswitch : public cPlugin {
private: