Ken Thomases : winex11.drv: Track which vkeys have already been assigned to keycodes.

Alexandre Julliard julliard at wine.codeweavers.com
Mon Nov 20 05:52:31 CST 2006


Module: wine
Branch: master
Commit: 8c768fb4375b0cb0cba92ddf0e11392cbad824e2
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=8c768fb4375b0cb0cba92ddf0e11392cbad824e2

Author: Ken Thomases <ken at codeweavers.com>
Date:   Fri Nov 17 14:46:13 2006 -0600

winex11.drv: Track which vkeys have already been assigned to keycodes.

---

 dlls/winex11.drv/keyboard.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/dlls/winex11.drv/keyboard.c b/dlls/winex11.drv/keyboard.c
index eb8a3c4..1fdb9e9 100644
--- a/dlls/winex11.drv/keyboard.c
+++ b/dlls/winex11.drv/keyboard.c
@@ -1561,6 +1561,7 @@ void X11DRV_InitKeyboard(void)
     int keyc, i, keyn, syms;
     char ckey[4]={0,0,0,0};
     const char (*lkey)[MAIN_LEN][4];
+    char vkey_used[256] = { 0 };
 
     wine_tsx11_lock();
     XDisplayKeycodes(display, &min_keycode, &max_keycode);
@@ -1732,6 +1733,9 @@ void X11DRV_InitKeyboard(void)
         TRACE("keycode %04x => vkey %04x\n", e2.keycode, vkey);
         keyc2vkey[e2.keycode] = vkey;
         keyc2scan[e2.keycode] = scan;
+        if ((vkey & 0xff) && vkey_used[(vkey & 0xff)])
+            WARN("vkey %04x is being used by more than one keycode\n", vkey);
+        vkey_used[(vkey & 0xff)] = 1;
     } /* for */
 
     /* If some keys still lack scancodes, assign some arbitrary ones to them now */




More information about the wine-cvs mailing list