Patch for keyboard (delete key)

Enio Schutt Jr enio.s.jr at operamail.com
Sat Dec 21 12:29:42 CST 2002


Sending patch to solve a problem with delete key.
Here is the patch and the changelog

PATCH

--- key-orig.c	Sat Dec 21 10:55:06 2002
+++ novo-key.c	Sat Dec 21 15:42:42 2002
@@ -844,11 +844,30 @@
 
     XLookupString(e, NULL, 0, &keysym, NULL);
 
-    if ((keysym >= 0xFFAE) && (keysym <= 0xFFB9) && (keysym != 0xFFAF)
-	&& (e->state & NumLockMask))
+    /* these fixmes allow you to see keysyms and keycodes
+       FIXME("keysym is %X\n",keysym);
+       FIXME("e->keycode is %X\n",e->keycode); */
+
+    /* about the numbers below:
+       0xFF9F: middle keyboard delete (keysym)
+       0x2C  : keypad delete (keysym)
+       0x3B  : comma (keycode)
+    */
+
+    if ( ((keysym == 0xFF9F) || (keysym == 0x2C))
+       && (e->state & NumLockMask))
+    {
+        if (keysym == 0xFF9F)
+           return nonchar_key_vkey[keysym & 0xFF]; 
+        if (keysym == 0x2C)
+           return keyc2vkey[0x3B];
+    }
+
+    if ((keysym >= 0xFFAE) && (keysym <= 0xFFB9) && (keysym != 0xFFAF) 
+        && (e->state & NumLockMask))
         /* Only the Keypad keys 0-9 and . send different keysyms
          * depending on the NumLock state */
-        return nonchar_key_vkey[keysym & 0xFF];
+        return nonchar_key_vkey[keysym & 0xFF]; 
 
     return keyc2vkey[e->keycode];
 }

-end-of-patch-

NOTES/CHANGELOG

It was added some code to the EVENT_event_to_vkey function. Its purpose is to make the delete keys (both of them) work properly with my ABNT keyboard. In ABNT keyboards, instead of del + '.' we have del + ','
The problem I was having is that when pressing the delete key, (no matter which one of them) wine generated del + ',' i.e. two keystrokes at once with numlock on.
This code worked for me, but I dont know how it will interfere with another keyboard layouts, and if another keyboards with del + ',' will have the same numbers (keycodes and keysyms) which I have coded in this patch.
BTW: key-orig.c is my backup file and novo-key.c is my actual dlls/x11drv/keyboard.c

-- 
_______________________________________________
Get your free email from http://mymail.operamail.com

Powered by Outblaze



More information about the wine-patches mailing list