Hi,

Mike Pieper <[EMAIL PROTECTED]> writes:

> Hmm, depends on what is more hackish. Introducing hardware key_codes
> to a driver which doesn't need it?  Another point is that DirectFb
> has no problem with devices which have no key code. So why then
> change DirectFb?  What kind of advantages do you see for DirectFb?

OK, you persuaded me. What about this (more localized) patch then:

Index: gdkkeys-directfb.c
===================================================================
RCS file: /cvs/directfb/gdk-directfb/gdkkeys-directfb.c,v
retrieving revision 1.21
diff -u -p -r1.21 gdkkeys-directfb.c
--- gdkkeys-directfb.c  26 Jun 2002 13:59:59 -0000      1.21
+++ gdkkeys-directfb.c  1 Jul 2002 20:03:04 -0000
@@ -303,8 +303,26 @@ gdk_directfb_translate_key_event (DFBWin
   event->group            = (dfb_event->modifiers & DIMM_ALTGR) ? 1 : 0;
   event->hardware_keycode = dfb_event->key_code;
   event->keyval           = gdk_directfb_translate_key (dfb_event->key_id,
-                                                       dfb_event->key_symbol);
-                  
+                                                        dfb_event->key_symbol);
+
+  /* If the device driver didn't send a key_code (happens with remote
+     controls), we try to find a suitable key_code by looking at the
+     default keymap. */
+
+  if (dfb_event->key_code == -1 && directfb_keymap)
+    {
+      gint i;
+      
+      for (i = directfb_min_keycode; i <= directfb_max_keycode; i++)
+        {
+          if (directfb_keymap[(i - directfb_min_keycode) * 4] == event->keyval)
+            {
+              event->hardware_keycode = i;
+              break;
+            }
+        }
+    }
+
   len = g_unichar_to_utf8 (dfb_event->key_symbol, buf);
 
   event->string = g_strndup (buf, len);


-- 
Info:  To unsubscribe send a mail to [EMAIL PROTECTED] with 
"unsubscribe directfb-dev" as subject.

Reply via email to