A while back someone (I think it was Alexander) mentioned something about UTF-8 working for keyboard detection and entering info. That same mistyrious someone said it was in XOO, and will be merged when Alexander finishes his merges.
I just tried it with latest CVS, and I am getting mixed results. If I'm using an unknown encoding, when I run wine with +keyboard, I get:
trace:keyboard:X11DRV_KEYBOARD_DetectLayout matches=22, mismatches=25, seq=21, score=-56
trace:keyboard:X11DRV_KEYBOARD_DetectLayout detected layout is "Israeli keyboard layout"
trace:keyboard:X11DRV_InitKeyboard OEM specific virtual key DF assigned to keycode 54:
trace:keyboard:X11DRV_InitKeyboard (FF9D (KP_Begin) FFB5 (KP_5) 0 (NoSymbol) 0 (NoSymbol) )
trace:keyboard:X11DRV_InitKeyboard OEM specific virtual key E0 assigned to keycode 73:
trace:keyboard:X11DRV_InitKeyboard (FFEB (Super_L) FFEB (Super_L) 0 (NoSymbol) 0 (NoSymbol) )
trace:keyboard:KEYBOARD_MapDeadKeysym no character for dead keysym 0x0000fe08
trace:keyboard:KEYBOARD_MapDeadKeysym no character for dead keysym 0x0000fe08
trace:keyboard:X11DRV_InitKeyboard OEM specific virtual key E1 assigned to keycode 75:
trace:keyboard:X11DRV_InitKeyboard (FF67 (Menu) FF67 (Menu) 0 (NoSymbol) 0 (NoSymbol) )
trace:keyboard:X11DRV_KeyEvent Adjusting NumLock state.
trace:keyboard:KEYBOARD_GenerateMsg OFF + Keypress => generating DOWN and UP messages.
trace:keyboard:KEYBOARD_GenerateMsg INTERM : don't treat release of toggle key. InputKeyStateTable[0x90] = 0x1
trace:keyboard:X11DRV_ToUnicode NumLockMask = 0010
trace:keyboard:X11DRV_ToUnicode AltGrMask = 2000
trace:keyboard:X11DRV_ToUnicode Found keycode 77 (0x4D)
trace:keyboard:KEYBOARD_MapDeadKeysym no character for dead keysym 0x0000ff7f
trace:keyboard:X11DRV_ToUnicode NumLockMask = 0010
trace:keyboard:X11DRV_ToUnicode AltGrMask = 2000
trace:keyboard:X11DRV_ToUnicode Found keycode 38 (0x26)
trace:keyboard:KEYBOARD_MapDeadKeysym no character for dead keysym 0x00000cf9
err:keyboard:X11DRV_ToUnicode Please report: no char for keysym 0CF9 (hebrew_shin) :
err:keyboard:X11DRV_ToUnicode (virtKey=41,scanCode=1E,keycode=26,state=2010)
trace:keyboard:X11DRV_ToUnicode NumLockMask = 0010
trace:keyboard:X11DRV_ToUnicode AltGrMask = 2000
trace:keyboard:X11DRV_ToUnicode Found keycode 45 (0x2D)
trace:keyboard:KEYBOARD_MapDeadKeysym no character for dead keysym 0x00000cec
err:keyboard:X11DRV_ToUnicode Please report: no char for keysym 0CEC (hebrew_lamed) :
err:keyboard:X11DRV_ToUnicode (virtKey=4B,scanCode=25,keycode=2D,state=2010)
trace:keyboard:X11DRV_ToUnicode NumLockMask = 0010
trace:keyboard:X11DRV_ToUnicode AltGrMask = 2000
trace:keyboard:X11DRV_ToUnicode Found keycode 30 (0x1E)
trace:keyboard:KEYBOARD_MapDeadKeysym no character for dead keysym 0x00000ce5
err:keyboard:X11DRV_ToUnicode Please report: no char for keysym 0CE5 (hebrew_waw) :
err:keyboard:X11DRV_ToUnicode (virtKey=55,scanCode=16,keycode=1E,state=2010)
trace:keyboard:X11DRV_ToUnicode NumLockMask = 0010
trace:keyboard:X11DRV_ToUnicode AltGrMask = 2000
trace:keyboard:X11DRV_ToUnicode Found keycode 32 (0x20)
trace:keyboard:KEYBOARD_MapDeadKeysym no character for dead keysym 0x00000ced
err:keyboard:X11DRV_ToUnicode Please report: no char for keysym 0CED (hebrew_finalmem) :
err:keyboard:X11DRV_ToUnicode (virtKey=4F,scanCode=18,keycode=20,state=2010)
When I run it with en_US.UTF-8, I get:
trace:keyboard:X11DRV_KEYBOARD_DetectLayout detected layout is "Israeli keyboard layout"
trace:keyboard:X11DRV_InitKeyboard OEM specific virtual key DF assigned to keycode 54:
trace:keyboard:X11DRV_InitKeyboard (FF9D (KP_Begin) FFB5 (KP_5) 0 (NoSymbol) 0 (NoSymbol) )
trace:keyboard:X11DRV_InitKeyboard OEM specific virtual key E0 assigned to keycode 73:
trace:keyboard:X11DRV_InitKeyboard (FFEB (Super_L) FFEB (Super_L) 0 (NoSymbol) 0 (NoSymbol) )
trace:keyboard:KEYBOARD_MapDeadKeysym no character for dead keysym 0x0000fe08
trace:keyboard:KEYBOARD_MapDeadKeysym no character for dead keysym 0x0000fe08
trace:keyboard:X11DRV_InitKeyboard OEM specific virtual key E1 assigned to keycode 75:
trace:keyboard:X11DRV_InitKeyboard (FF67 (Menu) FF67 (Menu) 0 (NoSymbol) 0 (NoSymbol) )
trace:keyboard:X11DRV_KeyEvent Adjusting NumLock state.
trace:keyboard:KEYBOARD_GenerateMsg OFF + Keypress => generating DOWN and UP messages.
trace:keyboard:KEYBOARD_GenerateMsg INTERM : don't treat release of toggle key. InputKeyStateTable[0x90] = 0x1
trace:keyboard:X11DRV_ToUnicode NumLockMask = 0010
trace:keyboard:X11DRV_ToUnicode AltGrMask = 2000
trace:keyboard:X11DRV_ToUnicode Found keycode 77 (0x4D)
trace:keyboard:KEYBOARD_MapDeadKeysym no character for dead keysym 0x0000ff7f
trace:keyboard:X11DRV_ToUnicode NumLockMask = 0010
trace:keyboard:X11DRV_ToUnicode AltGrMask = 2000
trace:keyboard:X11DRV_ToUnicode Found keycode 38 (0x26)
trace:keyboard:X11DRV_ToUnicode NumLockMask = 0010
trace:keyboard:X11DRV_ToUnicode AltGrMask = 2000
trace:keyboard:X11DRV_ToUnicode Found keycode 45 (0x2D)
trace:keyboard:X11DRV_ToUnicode NumLockMask = 0010
trace:keyboard:X11DRV_ToUnicode AltGrMask = 2000
trace:keyboard:X11DRV_ToUnicode Found keycode 30 (0x1E)
trace:keyboard:X11DRV_ToUnicode NumLockMask = 0010
trace:keyboard:X11DRV_ToUnicode AltGrMask = 2000
trace:keyboard:X11DRV_ToUnicode Found keycode 32 (0x20)
That is - no errors, but I don't get any characters on screen either.
When running this with locale he_IL, I get this:
trace:keyboard:X11DRV_KEYBOARD_DetectLayout detected layout is "Israeli keyboard layout"
trace:keyboard:X11DRV_InitKeyboard OEM specific virtual key DF assigned to keycode 54:
trace:keyboard:X11DRV_InitKeyboard (FF9D (KP_Begin) FFB5 (KP_5) 0 (NoSymbol) 0 (NoSymbol) )
trace:keyboard:X11DRV_InitKeyboard OEM specific virtual key E0 assigned to keycode 73:
trace:keyboard:X11DRV_InitKeyboard (FFEB (Super_L) FFEB (Super_L) 0 (NoSymbol) 0 (NoSymbol) )
trace:keyboard:KEYBOARD_MapDeadKeysym no character for dead keysym 0x0000fe08
trace:keyboard:KEYBOARD_MapDeadKeysym no character for dead keysym 0x0000fe08
trace:keyboard:X11DRV_InitKeyboard OEM specific virtual key E1 assigned to keycode 75:
trace:keyboard:X11DRV_InitKeyboard (FF67 (Menu) FF67 (Menu) 0 (NoSymbol) 0 (NoSymbol) )
trace:keyboard:X11DRV_KeyEvent Adjusting NumLock state.
trace:keyboard:KEYBOARD_GenerateMsg OFF + Keypress => generating DOWN and UP messages.
trace:keyboard:KEYBOARD_GenerateMsg INTERM : don't treat release of toggle key. InputKeyStateTable[0x90] = 0x1
trace:keyboard:X11DRV_ToUnicode NumLockMask = 0010
trace:keyboard:X11DRV_ToUnicode AltGrMask = 2000
trace:keyboard:X11DRV_ToUnicode Found keycode 77 (0x4D)
trace:keyboard:KEYBOARD_MapDeadKeysym no character for dead keysym 0x0000ff7f
trace:keyboard:X11DRV_ToUnicode NumLockMask = 0010
trace:keyboard:X11DRV_ToUnicode AltGrMask = 2000
trace:keyboard:X11DRV_ToUnicode Found keycode 38 (0x26)
trace:keyboard:X11DRV_ToUnicode NumLockMask = 0010
trace:keyboard:X11DRV_ToUnicode AltGrMask = 2000
trace:keyboard:X11DRV_ToUnicode Found keycode 45 (0x2D)
trace:keyboard:X11DRV_ToUnicode NumLockMask = 0010
trace:keyboard:X11DRV_ToUnicode AltGrMask = 2000
trace:keyboard:X11DRV_ToUnicode Found keycode 30 (0x1E)
trace:keyboard:X11DRV_ToUnicode NumLockMask = 0010
trace:keyboard:X11DRV_ToUnicode AltGrMask = 2000
trace:keyboard:X11DRV_ToUnicode Found keycode 32 (0x20)
Characters do appear on screen, this time. Could it just be that edit control (I'm using notepad to test this) does not support UTF-8?
Shachar
-- Shachar Shemesh Open Source integration consultant Home page & resume - http://www.shemesh.biz/
