diff options
author | Martin Negyokru <negyokru@inf.u-szeged.hu> | 2022-04-07 10:55:26 +0200 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2022-04-25 14:36:54 +0000 |
commit | b32168cb4d9ec461a497b727798cab44126993d3 (patch) | |
tree | d06df7f7787bb294b38b41b9bf092219739cb5d5 | |
parent | e63669cf8538ab1ae4845ba7579b5021b61329d3 (diff) |
Fix fatal error in getCurrentKeyboardLayout()
FATAL:xkb_keyboard_layout_engine.cc(640)] Keymap file failed to load: dk(polytonic)
Remove unnecessary tokenization of XKB layout.
Parsing of layout configuration is already handled by
XkbKeyboardLayoutEngine::ParseLayoutName().
Fixes: QTBUG-101201
Task-number: QTBUG-92971
Change-Id: Ia4f09ed99eb82064a3b12e14eda69a6e0e12b0dd
Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
(cherry picked from commit 69cd28b820ba8f8c578591b98f3ad88b00efcef3)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r-- | src/core/ozone/ozone_platform_qt.cpp | 25 |
1 files changed, 6 insertions, 19 deletions
diff --git a/src/core/ozone/ozone_platform_qt.cpp b/src/core/ozone/ozone_platform_qt.cpp index 0affec0d3..b7fd93737 100644 --- a/src/core/ozone/ozone_platform_qt.cpp +++ b/src/core/ozone/ozone_platform_qt.cpp @@ -186,29 +186,16 @@ static std::string getCurrentKeyboardLayout() if (XkbRF_GetNamesProp(dpy, nullptr, &vdr) == 0) return std::string(); - char *layout = strtok(vdr.layout, ","); - for (int i = 0; i < state.group; i++) { - layout = strtok(nullptr, ","); - if (layout == nullptr) - return std::string(); - } + if (!vdr.layout) + return std::string(); if (!vdr.variant) - return layout; - - char *variant = strtok(vdr.variant, ","); - if (!variant) - return layout; + return std::string(vdr.layout); - for (int i = 0; i < state.group; i++) { - variant = strtok(nullptr, ","); - if (variant == nullptr) - return layout; - } - - std::string layoutWithVariant = layout; + std::string layoutWithVariant = vdr.layout; layoutWithVariant = layoutWithVariant.append("-"); - layoutWithVariant = layoutWithVariant.append(variant); + layoutWithVariant = layoutWithVariant.append(vdr.variant); + return layoutWithVariant; } #endif // BUILDFLAG(USE_XKBCOMMON) |