• Show log

    Commit

  • Hash : 2a2a8d7d
    Author : Ran Benita
    Date : 2013-08-13T18:57:43

    state: apply capitalization transformation on keysyms
    
    The xkbproto spec says:
    http://www.x.org/releases/current/doc/kbproto/xkbproto.html#Interpreting_the_Lock_Modifier
    
        If the Lock modifier is not consumed by the symbol lookup process,
        routines that determine the symbol and string that correspond to
        an event should capitalize the result.
    
    This was not an issue until now, because most xkeyboard-config keymaps
    do not utilize this "feature", and specify the keysyms for the Lock
    modifier explicitly instead. However, some keymaps do depend on it, e.g.
    ch(fr) for eacute and others.
    
    The spec goes on to describe two options for doing this transformation:
    locale-sensitive and locale-insensitive. We opt for the latter; it is
    less desirable but we don't want *that* headache.
    
    Also, only xkb_state_key_get_one_sym() is changed;
    xkb_state_key_get_syms() is left as-is, and always reports the
    untransformed keysyms. This is for the following reasons:
    
    - The API doesn't allow it, since we return a const pointer directly to
      the keymap keysyms table and we can't transform that.
    
    - The transformation doesn't make sense for multiple-keysyms.
    
    - It can be useful for an application to get the "raw" keysyms if it
      wants to (e.g. maybe it wants to do the transformation itself).
    
    Finally, note that xkb_state_mod_index_is_consumed() does *not*
    report Lock as consumed even if it was used in the transformation. This
    is what Xlib does.
    
    This definitely doesn't fall under the "hard to misuse" API rule but
    it's the best we can do.
    
    https://bugs.freedesktop.org/show_bug.cgi?id=67167
    
    Reported-By: Gatis Paeglis <gatis.paeglis@digia.com>
    Signed-off-by: Ran Benita <ran234@gmail.com>
    

  • Properties

  • Git HTTP https://git.kmx.io/kc3-lang/libxkbcommon.git
    Git SSH git@git.kmx.io:kc3-lang/libxkbcommon.git
    Public access ? public
    Description

    keymap handling library for toolkits and window systems

    Users
    kc3_lang_org thodg_w www_kmx_io thodg_l thodg thodg_m
    Tags