summaryrefslogtreecommitdiffstats
path: root/src/core/ozone
diff options
context:
space:
mode:
authorMartin Negyokru <negyokru@inf.u-szeged.hu>2022-04-07 10:55:26 +0200
committerMartin Negyokru <negyokru@inf.u-szeged.hu>2022-04-13 15:45:22 +0200
commit69cd28b820ba8f8c578591b98f3ad88b00efcef3 (patch)
treefb810b6e33cc614f46a0220ad2b73fd576af1e61 /src/core/ozone
parent5af18817bbb955bac072ef009df963a36930dab6 (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 Pick-to: 6.2 6.3 Change-Id: Ia4f09ed99eb82064a3b12e14eda69a6e0e12b0dd Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'src/core/ozone')
-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 5fe145732..38306302f 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)