Bug 7326 - the keys {[]} on a Spanish keyboard do not work with FreeRDP
Summary: the keys {[]} on a Spanish keyboard do not work with FreeRDP
Status: NEW
Alias: None
Product: ThinLinc
Classification: Unclassified
Component: VNC (show other bugs)
Version: trunk
Hardware: PC Unknown
: P2 Normal
Target Milestone: LowPrio
Assignee: Bugzilla mail exporter
URL:
Keywords:
Depends on: 7282
Blocks: 3523
  Show dependency treegraph
 
Reported: 2019-04-08 15:44 CEST by Pierre Ossman
Modified: 2019-04-09 15:02 CEST (History)
0 users

See Also:
Acceptance Criteria:


Attachments
modified keymap (62.41 KB, application/octet-stream)
2019-04-08 15:56 CEST, Pierre Ossman
Details
modified keymap (62.35 KB, application/octet-stream)
2019-04-09 15:02 CEST, Pierre Ossman
Details

Description Pierre Ossman cendio 2019-04-08 15:44:42 CEST
We have a corner case in the key handling that breaks all the keys {[]} when FreeRDP is used in a ThinLinc session (even with bug 7282 is fixed).

The cause is that the Spanish keyboard map on X11 has those symbols in two places, whilst Windows only has them in one. E.g. [ exists on key 17 and 34 on X11, but on 34 on Windows.

The problem is that our keyboard code prefers lower numbered keys, so it will use 17 for the key event. AltGr+<17> doesn't really do anything at all on Windows though.
Comment 1 Pierre Ossman cendio 2019-04-08 15:56:12 CEST
Created attachment 907 [details]
modified keymap

Manually hacked version of the "es" keymap where those extra occurrences of {[]} have been removed (as wall as the workaround for bug 7282).

Can be loaded in to the session by doing:

  xkbcomp -w 0 es_win.xkb $DISPLAY


Not really a fix, but is at least a workaround.
Comment 3 Pierre Ossman cendio 2019-04-09 15:02:06 CEST
Created attachment 909 [details]
modified keymap

Updated workaround that also removes the extra \

Note that this will break the usage of AltGr with 7, 8, 9, and 0. So it will not work for users relying on those.

Note You need to log in before you can comment on or make changes to this bug.