[Bug 33368] New: WM_DEADCHAR events not sent

wine-bugs at winehq.org wine-bugs at winehq.org
Fri Apr 12 04:45:13 CDT 2013


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 at winehq.org
        ReportedBy: sloonz at 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.

-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.


More information about the wine-bugs mailing list