summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorvaxerski <vaxry@vaxry.net>2022-08-09 18:13:13 +0200
committervaxerski <vaxry@vaxry.net>2022-08-09 18:13:13 +0200
commite2f61e267e1aaabd78d0eaf0b31c2af66f9d1304 (patch)
tree64b6ba5a871a0f77ddbb4e83f97eac3916172119 /src
parentecce027c02bda91277ae8b9a9d95508c4e93eb73 (diff)
add parse errors for invalid kb layouts
Diffstat (limited to 'src')
-rw-r--r--src/config/ConfigManager.cpp5
-rw-r--r--src/config/ConfigManager.hpp2
-rw-r--r--src/managers/input/InputManager.cpp2
3 files changed, 9 insertions, 0 deletions
diff --git a/src/config/ConfigManager.cpp b/src/config/ConfigManager.cpp
index 5c592e36..3b361ece 100644
--- a/src/config/ConfigManager.cpp
+++ b/src/config/ConfigManager.cpp
@@ -1349,3 +1349,8 @@ void CConfigManager::ensureDPMS() {
SAnimationPropertyConfig* CConfigManager::getAnimationPropertyConfig(const std::string& name) {
return &animationConfig[name];
}
+
+void CConfigManager::addParseError(const std::string& err) {
+ if (parseError == "")
+ parseError = err;
+} \ No newline at end of file
diff --git a/src/config/ConfigManager.hpp b/src/config/ConfigManager.hpp
index 18079356..4eef417f 100644
--- a/src/config/ConfigManager.hpp
+++ b/src/config/ConfigManager.hpp
@@ -100,6 +100,8 @@ public:
std::string parseKeyword(const std::string&, const std::string&, bool dynamic = false);
+ void addParseError(const std::string&);
+
SAnimationPropertyConfig* getAnimationPropertyConfig(const std::string&);
private:
diff --git a/src/managers/input/InputManager.cpp b/src/managers/input/InputManager.cpp
index e23962a1..e8f204b7 100644
--- a/src/managers/input/InputManager.cpp
+++ b/src/managers/input/InputManager.cpp
@@ -536,6 +536,8 @@ void CInputManager::applyConfigToKeyboard(SKeyboard* pKeyboard) {
auto KEYMAP = xkb_keymap_new_from_names(CONTEXT, &rules, XKB_KEYMAP_COMPILE_NO_FLAGS);
if (!KEYMAP) {
+ g_pConfigManager->addParseError("Invalid keyboard layout passed. ( rules: " + RULES + ", model: " + MODEL + ", variant: " + VARIANT + ", options: " + OPTIONS + ", layout: " + LAYOUT + " )");
+
Debug::log(ERR, "Keyboard layout %s with variant %s (rules: %s, model: %s, options: %s) couldn't have been loaded.", rules.layout, rules.variant, rules.rules, rules.model, rules.options);
memset(&rules, 0, sizeof(rules));