aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/debug/HyprCtl.cpp
diff options
context:
space:
mode:
authorSoSeDiK <[email protected]>2024-04-09 18:14:53 +0300
committerGitHub <[email protected]>2024-04-09 16:14:53 +0100
commitf2addfb404ccf1cacd9481e0c7612cbf1dc0c8b4 (patch)
treebfe4b2f6bccbc3a3626fbe393c2b500208d83f60 /src/debug/HyprCtl.cpp
parentfcac25bcc2496dc248e9ee912d95ec38b5397acd (diff)
downloadHyprland-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.cpp22
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") {