• Ken Thomases's avatar
    winemac: Ignore spurious or redundant notifications that the keyboard input source changed. · feb19ee6
    Ken Thomases authored
    In particular, when an input method for an Asian language (e.g. Pinyin) is
    selected, we were getting repeated notifications.  Querying the selected input
    method upon receiving them suggested that the keyboard layout changed to U.S.
    then back to Pinyin, then several redundant notifications with no apparent
    change.
    
    Since the handler for the posted KEYBOARD_CHANGED events sends WM_CANCELMODE to
    the active window, this was having bad effects.
    
    The spurious notifications can be distinguished by there being no current
    text input context or client.  To detect redundant notifications, we track the
    last keyboard input source and keyboard layout input source and compare with
    the new ones to see if they really changed.
    Signed-off-by: 's avatarKen Thomases <ken@codeweavers.com>
    Signed-off-by: 's avatarAlexandre Julliard <julliard@winehq.org>
    feb19ee6
cocoa_app.h 4.25 KB