mirror of
https://github.com/VDR4Arch/vdr.git
synced 2023-10-10 13:36:52 +02:00
Fixed double call to MainMenuAction() of a plugin if invoked via a hotkey
This commit is contained in:
parent
240529710d
commit
03a4a3a618
@ -624,3 +624,6 @@ Andreas Mair <Andreas.Mair@linogate.com>
|
||||
|
||||
Olivier Jacques <jacquesolivier@hotmail.com>)
|
||||
for translating OSD texts to the French language
|
||||
|
||||
Kai Moeller <moeller.ki@gmx.de>
|
||||
for reporting a double call to MainMenuAction() of a plugin if invoked via a hotkey
|
||||
|
2
HISTORY
2
HISTORY
@ -2092,3 +2092,5 @@ Video Disk Recorder Revision History
|
||||
- Fixed paging through lists with repeated Left/Right keys.
|
||||
- Fixed setting the PCR-PID in case it is equal to one of the other PIDs (thanks
|
||||
to Oliver Endriss for reporting this one).
|
||||
- Fixed double call to MainMenuAction() of a plugin if invoked via a hotkey (thanks
|
||||
to Kai Moeller for reporting this one).
|
||||
|
5
osd.c
5
osd.c
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: osd.c 1.40 2003/03/23 15:41:54 kls Exp $
|
||||
* $Id: osd.c 1.41 2003/05/02 10:46:13 kls Exp $
|
||||
*/
|
||||
|
||||
#include "osd.h"
|
||||
@ -578,7 +578,8 @@ eOSState cOsdMenu::HotKey(eKeys Key)
|
||||
if (s && (s = skipspace(s)) != NULL) {
|
||||
if (*s == Key - k1 + '1') {
|
||||
current = item->Index();
|
||||
return ProcessKey(kOk);
|
||||
cRemote::Put(kOk, true);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
17
remote.c
17
remote.c
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: remote.c 1.37 2003/05/01 14:44:55 kls Exp $
|
||||
* $Id: remote.c 1.38 2003/05/02 10:49:50 kls Exp $
|
||||
*/
|
||||
|
||||
#include "remote.h"
|
||||
@ -58,7 +58,7 @@ void cRemote::Clear(void)
|
||||
}
|
||||
}
|
||||
|
||||
bool cRemote::Put(eKeys Key)
|
||||
bool cRemote::Put(eKeys Key, bool AtFront)
|
||||
{
|
||||
if (Key != kNone) {
|
||||
cMutexLock MutexLock(&mutex);
|
||||
@ -68,9 +68,16 @@ bool cRemote::Put(eKeys Key)
|
||||
if (d <= 0)
|
||||
d = MaxKeys + d;
|
||||
if (d - 1 > 0) {
|
||||
keys[in] = Key;
|
||||
if (++in >= MaxKeys)
|
||||
in = 0;
|
||||
if (AtFront) {
|
||||
if (--out < 0)
|
||||
out = MaxKeys - 1;
|
||||
keys[out] = Key;
|
||||
}
|
||||
else {
|
||||
keys[in] = Key;
|
||||
if (++in >= MaxKeys)
|
||||
in = 0;
|
||||
}
|
||||
keyPressed.Broadcast();
|
||||
return true;
|
||||
}
|
||||
|
4
remote.h
4
remote.h
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: remote.h 1.27 2003/05/01 14:45:00 kls Exp $
|
||||
* $Id: remote.h 1.28 2003/05/02 10:41:35 kls Exp $
|
||||
*/
|
||||
|
||||
#ifndef __REMOTE_H
|
||||
@ -42,7 +42,7 @@ public:
|
||||
const char *Name(void) { return name; }
|
||||
static void SetLearning(cRemote *Learning) { learning = Learning; }
|
||||
static void Clear(void);
|
||||
static bool Put(eKeys Key);
|
||||
static bool Put(eKeys Key, bool AtFront = false);
|
||||
static bool PutMacro(eKeys Key);
|
||||
static const char *GetPlugin(void) { return plugin; }
|
||||
static bool HasKeys(void);
|
||||
|
Loading…
Reference in New Issue
Block a user