On Wed, 2010-12-22 at 07:51 +0000, Chun Yan Liu wrote:
>
> Changeset 7410 handles altgr-insert problem. Unfortunately, with that
> patch, there is a problem in En-us keyboard: '|' (bar) cannot be
> displayed. After checking keymap files, we found there are two
> definitions to "bar" in en-us:
> bar 0x56 altgr (in "common")
> bar 0x2b shift (in "en-us")
> First line is actually invalid in en-us lanuage. The 2nd definition
> will cover the 1st one.
>
> Patch in Changeset 7410 didn't consider multi-definition case. It
> scans keymap files, if keysym needs altgr, it will records that, after
> that, if keysym is pressed but altgr not pressed, it will add an altgr
> press opeartion. It is correct if all keysyms are unique and valid.
> But in the above multi-definition case, there is problem: when
> reading
> bar 0x56 altgr (in "common")
> it will record altgr needed, but in fact, that definition won't be
> used, it always use the 2nd definition and won't need altgr. Then if
> the keysym is pressed, the code will still add an altgr press
> operation, that will cause problem.
>
> So, if we cannot avoid multi-definition in keymap files, the altgr
> flag (whether altgr needed or not) should also be refreshed according
> to the 2nd defintion. In the above case, when reading the 1st line, it
> records altgr needed; then reading 2nd line, 2nd definition will cover
> the 1st, meanwhile the altgr flag should be reset (the 2nd definition
> doesn't need altgr, so altgr flag should be removed.)
>
> Following patch supplements patch in Changeset 7410, solve the
> problem. Please share your comments. Thanks!
>
> Singed-off-by ChunyanLiu <cyliu@xxxxxxxxxx>
Acked-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
This fixes an issue I was seeing with the en-gb keymap too.
Ian.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|