[Bug 7609] shift-key instantly pressed, all aps

Wine Bugs wine-bugs at winehq.org
Sun Mar 4 21:16:23 CST 2007


http://bugs.winehq.org/show_bug.cgi?id=7609





------- Additional Comments From vladimirkadlec at gmail.com  2007-04-03 21:16 -------
To be precise, the problem is in function X11DRV_KeyEvent, line 1370. The patch
changes:
if (xic)
to the
if (xic && event->type == KeyPress)
I agree that this is correct. The previous incorrect call of XmbLookupString has
a side effect, that (e.g. for left shift) sets status=1 and keysym=0 on
KeyRelease. Because of keysym=0 the code reaches  EVENT_event_to_vkey call (line
1424).

The patch disables this side effect, so e.g. on left shift KeyRelease the keysym
is 0xfe0a (ISO_Prev_Group) and it's ignored by condition on 1377. When I add a
hack to this condition (&& keysym != XK_ISO_Prev_Group), then the left shift works.

I also overlooked this:
warn:keyboard:X11DRV_KEYBOARD_DetectLayout 8 keysyms per keycode not supported,
set to 4
warn:keyboard:X11DRV_InitKeyboard vkey 0010 is being used by more than one keycode

Both shifts have keycodes 0x32, which are converted to virtKey=0010. Maybe, this
is the problem?

I remember exactly the same problem (reporting XK_ISO_Prev_Group on shifts, and
shifts "instantly" pressed) several years ago with console in moreQuakeWorld
linux client. I reported it to the author and it was fixed. But it's more than 5
years, so I don't remember the details.

-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.



More information about the wine-bugs mailing list