http://bugs.winehq.org/show_bug.cgi?id=33368
Bug #: 33368 Summary: WM_DEADCHAR events not sent Product: Wine Version: 1.5.27 Platform: x86 OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: winex11.drv AssignedTo: wine-bugs@winehq.org ReportedBy: sloonz@gmail.com Classification: Unclassified
Created attachment 44152 --> http://bugs.winehq.org/attachment.cgi?id=44152 Keyboard traces in three different scenarios (Windows, Wine, Wine+patch)
XFilterEvent() returns true for events of dead keys, so they are not processed by wine. However, that prevents sending a WM_DEADCHAR event to the application, as it works on Windows. For example, in order to emit a "ê" character in a french keyboard layout, I first have to press ^ (which is a dead key) and then e. Under Windows, this leads to the following sequence of events :
KEYDOWN: dead_circumflex DEADCHAR: dead_circumflex KEYDOWN: e CHAR: ê KEYUP: e KEYUP: dead_circumflex
Under wine I have only those events :
KEYUP: dead_circumflex KEYDOWN: e CHAR: ê
Attached patch fixes most of that, with it I get :
KEYDOWN: dead_circumflex DEADCHAR: dead_circumflex UP: dead_circumflex KEYDOWN: e CHAR: ê KEYUP: e
Note that it’s still slighty different from Windows (KEYUP for dead key is third message on Wine, whereas it is before the last one on Windows), but I don’t see a clean fix for this issue.
As for the traces in attachment, contains three traces. The first one is from Spy++ on Windows ; the second is the relevant output of WINEDEBUG=+msg notepad for unpatched wine ; the third one for patched wine.
http://bugs.winehq.org/show_bug.cgi?id=33368
--- Comment #1 from sloonz@gmail.com 2013-04-12 04:46:15 CDT --- Created attachment 44153 --> http://bugs.winehq.org/attachment.cgi?id=44153 Patch
http://bugs.winehq.org/show_bug.cgi?id=33368
--- Comment #2 from Austin English austinenglish@gmail.com 2013-04-12 12:15:25 CDT --- Patches should be sent to wine-patches@winehq.org.
See http://wiki.winehq.org/SubmittingPatches
https://bugs.winehq.org/show_bug.cgi?id=33368
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |patch
--- Comment #3 from Austin English austinenglish@gmail.com --- This is your friendly reminder that there has been no bug activity for over a year. Is this still an issue in current (1.7.37 or newer) wine? If so, please attach the terminal output in 1.7.37 (see http://wiki.winehq.org/FAQ#get_log).
https://bugs.winehq.org/show_bug.cgi?id=33368
super_man@post.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |super_man@post.com
--- Comment #4 from super_man@post.com --- patching file dlls/winex11.drv/event.c Hunk #1 succeeded at 415 (offset 26 lines). Hunk #2 succeeded at 427 (offset 26 lines). Hunk #3 succeeded at 440 (offset 26 lines).
against wine 1.9.6-git
https://bugs.winehq.org/show_bug.cgi?id=33368
joaopa jeremielapuree@yahoo.fr changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |jeremielapuree@yahoo.fr
--- Comment #5 from joaopa jeremielapuree@yahoo.fr --- Does the bug still occur with current wine (3.21)?
https://bugs.winehq.org/show_bug.cgi?id=33368
--- Comment #6 from sloonz@gmail.com --- The bug is still present in wine-staging-4.0-rc3