diff options
author | SoSeDiK <[email protected]> | 2024-04-09 18:14:53 +0300 |
---|---|---|
committer | GitHub <[email protected]> | 2024-04-09 16:14:53 +0100 |
commit | f2addfb404ccf1cacd9481e0c7612cbf1dc0c8b4 (patch) | |
tree | bfe4b2f6bccbc3a3626fbe393c2b500208d83f60 /src/debug/HyprCtl.cpp | |
parent | fcac25bcc2496dc248e9ee912d95ec38b5397acd (diff) | |
download | Hyprland-f2addfb404ccf1cacd9481e0c7612cbf1dc0c8b4.tar.gz Hyprland-f2addfb404ccf1cacd9481e0c7612cbf1dc0c8b4.zip |
props: Parse border color props as gradient (#5513)
Diffstat (limited to 'src/debug/HyprCtl.cpp')
-rw-r--r-- | src/debug/HyprCtl.cpp | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/src/debug/HyprCtl.cpp b/src/debug/HyprCtl.cpp index ad62de12..305f5275 100644 --- a/src/debug/HyprCtl.cpp +++ b/src/debug/HyprCtl.cpp @@ -15,6 +15,7 @@ #include <string> #include <typeindex> +#include "../config/ConfigDataValues.hpp" #include "../config/ConfigValue.hpp" #include "../managers/CursorManager.hpp" #include "../hyprerror/HyprError.hpp" @@ -1213,10 +1214,23 @@ std::string dispatchSetProp(eHyprCtlOutputFormat format, std::string request) { PWINDOW->m_sSpecialRenderData.alphaFullscreenOverride.forceSetIgnoreLocked(configStringToInt(VAL), lock); } else if (PROP == "alphafullscreen") { PWINDOW->m_sSpecialRenderData.alphaFullscreen.forceSetIgnoreLocked(std::stof(VAL), lock); - } else if (PROP == "activebordercolor") { - PWINDOW->m_sSpecialRenderData.activeBorderColor.forceSetIgnoreLocked(CGradientValueData(CColor(configStringToInt(VAL))), lock); - } else if (PROP == "inactivebordercolor") { - PWINDOW->m_sSpecialRenderData.inactiveBorderColor.forceSetIgnoreLocked(CGradientValueData(CColor(configStringToInt(VAL))), lock); + } else if (PROP == "activebordercolor" || PROP == "inactivebordercolor") { + CGradientValueData colorData = {}; + if (vars.size() > 4) { + for (int i = 3; i < static_cast<int>(lock ? vars.size() - 1 : vars.size()); ++i) { + const auto TOKEN = vars[i]; + if (TOKEN.ends_with("deg")) + colorData.m_fAngle = std::stoi(TOKEN.substr(0, TOKEN.size() - 3)) * (PI / 180.0); + else + colorData.m_vColors.push_back(configStringToInt(TOKEN)); + } + } else if (VAL != "-1") + colorData.m_vColors.push_back(configStringToInt(VAL)); + + if (PROP == "activebordercolor") + PWINDOW->m_sSpecialRenderData.activeBorderColor.forceSetIgnoreLocked(colorData, lock); + else + PWINDOW->m_sSpecialRenderData.inactiveBorderColor.forceSetIgnoreLocked(colorData, lock); } else if (PROP == "forcergbx") { PWINDOW->m_sAdditionalConfigData.forceRGBX.forceSetIgnoreLocked(configStringToInt(VAL), lock); } else if (PROP == "bordersize") { |