diff options
author | anbr <vdr07@deltab.de> | 2014-02-23 17:23:24 +0100 |
---|---|---|
committer | anbr <vdr07@deltab.de> | 2014-02-23 17:23:24 +0100 |
commit | 21ff4641d19214a9c089339adf24e2d944b5db4b (patch) | |
tree | 34d2019a0653a7bd28b665523d4ce747939f9116 /commands.c | |
parent | 499640f70acab4058d1856df100d1f476f7fc3e2 (diff) | |
download | vdr-plugin-dvdswitch-21ff4641d19214a9c089339adf24e2d944b5db4b.tar.gz vdr-plugin-dvdswitch-21ff4641d19214a9c089339adf24e2d944b5db4b.tar.bz2 |
Fix: menu keystoke processing
Diffstat (limited to 'commands.c')
-rw-r--r-- | commands.c | 14 |
1 files changed, 8 insertions, 6 deletions
@@ -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; } |