I spent a lot of time looking for a solution for using my Brasilian ABNT-2 keyboard. I've already sent a new patch to wine-patches in order to correct keytables and vkey tables. But it remained a small problem: It was NOT generating the correct dead-key codes. So, I developed a *workaround*. This patch has to be applyied to dlls/x11drv/keyboard.c (It was tested with CVS 20021125). I advice that it wil work only for ABNT-2 keyboards.
----------------------------------------------------------------------------------------------------------------------------------------
--- keyboard.c 2002-11-28 22:33:07.000000000 -0200 +++ keyboard.c 2002-12-16 15:10:07.000000000 -0200 @@ -1759,6 +1794,10 @@ else TRACE("Found keycode %d (0x%2X)\n",e.keycode,e.keycode);
ret = XLookupString(&e, (LPVOID)lpChar, 2, &keysym, NULL); + +/* Gambiarra para funcionarem os acentos em teclado ABNT-2 */ +if ((e.keycode==48)||(e.keycode==34)||((e.keycode==15)&&(e.state & ShiftMask))) ret=0; + wine_tsx11_unlock();
if (ret == 0)