diff options
author | Gatis Paeglis <gatis.paeglis@qt.io> | 2019-02-10 15:26:31 +0100 |
---|---|---|
committer | Gatis Paeglis <gatis.paeglis@qt.io> | 2019-08-19 18:02:17 +0000 |
commit | d8b8ecf7281ee34ba4f68283ed7f204b0e2ce3f9 (patch) | |
tree | ca3ef3a09f4665dee0949e9239b11699dbadf98e /src/compositor | |
parent | ffec8ce782cebd4432c10ad7fb467b89164b6a2d (diff) |
compositor: ensure keymap always contains 'us' layout
On X11, this is ensured by keyboard configuration tools bundled
with desktop environments. More details and some history is
in qtbase/1aec1a2d8df182a9e15906bcfede32a9841586ea. Short version
is that 'lookup latin key' algorithm relies on a latin-key-based
layout being present in the XKB keymap.
Change-Id: Ie985a1e6ad0995c139a51f4dab610d791dfcaf08
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
Diffstat (limited to 'src/compositor')
-rw-r--r-- | src/compositor/compositor_api/qwaylandkeyboard.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/compositor/compositor_api/qwaylandkeyboard.cpp b/src/compositor/compositor_api/qwaylandkeyboard.cpp index 452be4363..c5ec008d7 100644 --- a/src/compositor/compositor_api/qwaylandkeyboard.cpp +++ b/src/compositor/compositor_api/qwaylandkeyboard.cpp @@ -366,6 +366,13 @@ void QWaylandKeyboardPrivate::createXKBKeymap() QByteArray variant = keymap->variant().toLocal8Bit(); QByteArray options = keymap->options().toLocal8Bit(); + if (!layout.isEmpty() && !layout.contains("us")) { + // This is needed for shortucts like "ctrl+c" to function even when + // user has selected only non-latin keyboard layouts, e.g. 'ru'. + layout.append(",us"); + variant.append(","); + } + struct xkb_rule_names rule_names = { rules.constData(), model.constData(), |