summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Negyokru <negyokru@inf.u-szeged.hu>2022-04-07 10:55:26 +0200
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2022-04-13 23:45:41 +0000
commitbe46b3a76971e1c5ccee56b2026eb67785a7409d (patch)
treefaa7d02e0b3a032f897a1aaf7c582717e02dd446
parent530a08c921a10919a04a4e30d2cd4be7b0d9cdf8 (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.cpp25
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 33d7bd992..a44c1ff1a 100644
--- a/src/core/ozone/ozone_platform_qt.cpp
+++ b/src/core/ozone/ozone_platform_qt.cpp
@@ -184,29 +184,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)