diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/config/legacy/ConfigManager.cpp | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/src/config/legacy/ConfigManager.cpp b/src/config/legacy/ConfigManager.cpp index 566cabb7..04d76260 100644 --- a/src/config/legacy/ConfigManager.cpp +++ b/src/config/legacy/ConfigManager.cpp @@ -1118,20 +1118,36 @@ bool CConfigManager::deviceConfigExplicitlySet(const std::string& dev, const std } int CConfigManager::getDeviceInt(const std::string& dev, const std::string& v, const std::string& fallback) { - return std::any_cast<Hyprlang::INT>(getConfigValueSafeDevice(dev, v, fallback)->getValue()); + auto val = getConfigValueSafeDevice(dev, v, fallback); + if (!val) + return {}; + + return std::any_cast<Hyprlang::INT>(val->getValue()); } float CConfigManager::getDeviceFloat(const std::string& dev, const std::string& v, const std::string& fallback) { - return std::any_cast<Hyprlang::FLOAT>(getConfigValueSafeDevice(dev, v, fallback)->getValue()); + auto val = getConfigValueSafeDevice(dev, v, fallback); + if (!val) + return {}; + + return std::any_cast<Hyprlang::FLOAT>(val->getValue()); } Vector2D CConfigManager::getDeviceVec(const std::string& dev, const std::string& v, const std::string& fallback) { - auto vec = std::any_cast<Hyprlang::VEC2>(getConfigValueSafeDevice(dev, v, fallback)->getValue()); + auto val = getConfigValueSafeDevice(dev, v, fallback); + if (!val) + return {}; + + auto vec = std::any_cast<Hyprlang::VEC2>(val->getValue()); return {vec.x, vec.y}; } std::string CConfigManager::getDeviceString(const std::string& dev, const std::string& v, const std::string& fallback) { - auto VAL = std::string{std::any_cast<Hyprlang::STRING>(getConfigValueSafeDevice(dev, v, fallback)->getValue())}; + auto val = getConfigValueSafeDevice(dev, v, fallback); + if (!val) + return ""; + + auto VAL = std::string{std::any_cast<Hyprlang::STRING>(val->getValue())}; if (VAL == STRVAL_EMPTY) return ""; |
