Hi all,

I am using Debian SID with KDE. In KDE, I defined two keyboard layouts
(US and IL). I tried to add Israeli keyboard detection using the
attached patch (layout.diff). When trying to test that patch, however, I
perform the following task:

I type in the command as suggested in the docs (wine --debugmsg
+key,+keyboard >& key.log). Attached are two run attempts. key.log is
with the US keyboard selected, key2.log is with the Hebrew keyboard
selected.

Comparing the two outputs, several things become evident:

    1. The Israeli keyboard is not detected. It fails to match even the
       non-Hebrew characters (such as the '/' instead of lower case 'q').
       It's as if WINE did not notice that a non-English keymap was
       installed. On the other hand, there are some differences between
       the two runs. What's going on?
    2. The dvorak keyboard has 0 mismatches???? I noticed that the code
       has some different virtual mapping of the keyboard. I am not aware
       that dvorak keyboards generate a different scan code mapping. Am I
       missing something here?
    3. There does not appear to be any code that detects layout changes
       in X11, and sends the apropriate WM_INPUTLANGCHANGE message. I
       understood that implementing an event trigered by X layout change
       is a difficult matter, but it is highly necessary for my BiDi
       support (many programs, including Office, know the current
       direction, and have visual representation when it changes. Not
       implementing this message may prove to be problematic in that
       respect).
       I currently don't have the capacity to go after this particular
       problem, but if it remains unsolved by the time it becomes crucial
       to me, I will. If anyone has any leads on solving this problem,
       please let me know. I have entered bug #735 on this issue.


                 Many thanks for your input,

                             Shachar


Index: dlls/x11drv/keyboard.c
===================================================================
RCS file: /home/wine/wine/dlls/x11drv/keyboard.c,v
retrieving revision 1.1
diff -u -r1.1 keyboard.c
--- dlls/x11drv/keyboard.c      30 Apr 2002 21:16:39 -0000      1.1
+++ dlls/x11drv/keyboard.c      28 May 2002 13:20:04 -0000
@@ -531,6 +531,15 @@
 "zZ","xX","cC","vV","bB","nN","mM","öÖ","çÇ",".:"
 };
 
+/*** Israeli keyboard layout */
+static const char main_key_IL[MAIN_LEN][4] =
+{
+ "`~","1!","2@","3#","4$","5%","6^","7&","8*","9(","0)","-_","=+",
+ "/Q","'W","÷E","øR","àT","èY","åU","ïI","íO","ôP","[{","]}",
+ "ùA","ãS","âD","ëF","òG","éH","çJ","ìK","êL","ó:",",\"","\\|",
+ "æZ","ñX","áC","äV","ðB","îN","öM","ú<","õ>",".?"
+};
+
 /*** VNC keyboard layout */
 static const WORD main_key_scan_vnc[MAIN_LEN] =
 {
@@ -600,6 +609,7 @@
  {"Latin American keyboard layout", 28591, &main_key_LA, &main_key_scan_qwerty, 
&main_key_vkey_qwerty},
  {"Lithuanian (Baltic) keyboard layout", 28603, &main_key_LT_B, 
&main_key_scan_qwerty, &main_key_vkey_qwerty},
  {"Turkish keyboard layout", 28599, &main_key_TK, &main_key_scan_qwerty, 
&main_key_vkey_qwerty},
+ {"Israeli keyboard layout", 28598, &main_key_IL, &main_key_scan_qwerty, 
+&main_key_vkey_qwerty},
  {"VNC keyboard layout", 28591, &main_key_vnc, &main_key_scan_vnc, 
&main_key_vkey_vnc},
 
  {NULL, 0, NULL, NULL, NULL} /* sentinel */

Attachment: key.log.bz2
Description: Binary data

Attachment: key2.log.bz2
Description: Binary data

Reply via email to