From 05ff6451fc4b25de9bc01f572959b356ec9cf282 Mon Sep 17 00:00:00 2001
From: Marcus Comstedt
Date: Fri, 6 Dec 2002 01:30:38 +0000
Subject: Generate KEY_UP events as well...

svn-id: r5849
---
 backends/dc/input.cpp | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

(limited to 'backends/dc')

diff --git a/backends/dc/input.cpp b/backends/dc/input.cpp
index 7807616caa..c12731fe01 100644
--- a/backends/dc/input.cpp
+++ b/backends/dc/input.cpp
@@ -126,9 +126,12 @@ int handleInput(struct mapledev *pad, int &mouse_x, int &mouse_y,
     return -OSystem::EVENT_RBUTTONUP;
   }
 
-  if(!newkey)
+  if(!newkey || (lastkey && newkey != lastkey)) {
+    int upkey = lastkey;
     lastkey = 0;
-  else if(newkey != lastkey)
+    if(upkey)
+      return upkey | (1<<30);
+  } else if(!lastkey)
     return lastkey = newkey;
 
   return 0;
@@ -157,7 +160,8 @@ bool OSystem_Dreamcast::poll_event(Event *event)
     event->event_code = -e;
     return true;
   } else if(e>0) {
-    event->event_code = EVENT_KEYDOWN;
+    event->event_code = ((e&(1<<30))? EVENT_KEYUP : EVENT_KEYDOWN);
+    e &= ~(1<<30);
     event->kbd.keycode = e;
     event->kbd.ascii = (e>='a' && e<='z' && (event->kbd.flags & KBD_SHIFT)?
 			e &~ 0x20 : e);
-- 
cgit v1.2.3