summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--osdworker.c11
-rw-r--r--remote.c3
-rw-r--r--remote.h2
3 files changed, 9 insertions, 7 deletions
diff --git a/osdworker.c b/osdworker.c
index 37c3037..2d8769b 100644
--- a/osdworker.c
+++ b/osdworker.c
@@ -533,15 +533,14 @@ void cOSDWorker::HandleClientRequests(cTBSelect *select)
dsyslog("[ffnetdev] VNC: KeyEvent\n");
cMyRemote *pRemote;
if ((pRemote = m_pPlugin->GetRemote()) != NULL) {
- if (msg.ke.down)
- pRemote->Put(Swap32IfLE(msg.ke.key), false, false);
- else
- pRemote->Put(Swap32IfLE(msg.ke.key), false, true);
+ pRemote->Put(Swap32IfLE(msg.ke.key), false, !msg.ke.down);
}
#ifdef DEBUG
- fprintf(stderr, "[ffnetdev] VNC: Remote: %04X\n", msg.ke.key);
+ fprintf(stderr, "[ffnetdev] VNC: Remote: %04X %s\n", msg.ke.key,
+ msg.ke.down ? "down" : "up");
#endif
- dsyslog("[ffnetdev] VNC: Remote: %04X\n", msg.ke.key);
+ dsyslog("[ffnetdev] VNC: Remote: %04X %s\n", msg.ke.key,
+ msg.ke.down ? "down" : "up");
break;
case rfbPointerEvent: if (!RFBRead( ((char*)&msg.pe)+1, sz_rfbPointerEventMsg-1))
return;
diff --git a/remote.c b/remote.c
index f5ed0e8..806e42a 100644
--- a/remote.c
+++ b/remote.c
@@ -29,6 +29,9 @@ bool cMyRemote::Initialize(void)
bool cMyRemote::Put(uint64 Code, bool Repeat, bool Release)
{
+ if ((cRemote::IsLearning()) && (Release))
+ return false;
+ else
return cRemote::Put(Code, Repeat ,Release);
}
diff --git a/remote.h b/remote.h
index 583693d..b3717b3 100644
--- a/remote.h
+++ b/remote.h
@@ -17,7 +17,7 @@ public:
cMyRemote(const char *Name);
virtual bool Initialize(void);
virtual bool Ready(void);
- virtual bool Put(uint64 Code, bool Repeat = false, bool Release = false);
+ virtual bool Put(uint64 Code, bool Repeat, bool Release);
};