diff options
| author | Jef <54236+ElJeffe@users.noreply.github.com> | 2022-11-13 20:33:13 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-11-13 19:33:13 +0000 |
| commit | 549fdf63f6f72fadf4e1f67f42fc2a99d625b42e (patch) | |
| tree | db06da03842266c024ea8e6d6604630cdd79d8e4 /src/events/Windows.cpp | |
| parent | 1a14841a75b2c387b9f67b7f7c40e0b5d3e1f86b (diff) | |
Add bordercolor windowrule (#992)
* Add bordercolor windowrule
* remove spaces form bordercolor rule + typo
Co-authored-by: Jef Steelant <jef.steelant_ext@softathome.com>
Diffstat (limited to 'src/events/Windows.cpp')
| -rw-r--r-- | src/events/Windows.cpp | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/src/events/Windows.cpp b/src/events/Windows.cpp index 000d1e33..3dcd7dc0 100644 --- a/src/events/Windows.cpp +++ b/src/events/Windows.cpp @@ -187,10 +187,10 @@ void Events::listener_mapWindow(void* owner, void* data) { } } else if (r.szRule.find("opacity") == 0) { try { - std::string alphaPart = r.szRule.substr(r.szRule.find_first_of(' ') + 1); + std::string alphaPart = removeBeginEndSpacesTabs(r.szRule.substr(r.szRule.find_first_of(' ') + 1)); if (alphaPart.contains(' ')) { - // we have a comma, 2 values + // we have a space, 2 values PWINDOW->m_sSpecialRenderData.alpha = std::stof(alphaPart.substr(0, alphaPart.find_first_of(' '))); PWINDOW->m_sSpecialRenderData.alphaInactive = std::stof(alphaPart.substr(alphaPart.find_first_of(' ') + 1)); } else { @@ -216,6 +216,20 @@ void Events::listener_mapWindow(void* owner, void* data) { } else { Debug::log(ERR, "Rule idleinhibit: unknown mode %s", IDLERULE.c_str()); } + } else if (r.szRule.find("bordercolor") == 0) { + try { + std::string colorPart = removeBeginEndSpacesTabs(r.szRule.substr(r.szRule.find_first_of(' ') + 1)); + + if (colorPart.contains(' ')) { + // we have a space, 2 values + PWINDOW->m_sSpecialRenderData.activeBorderColor = configStringToInt(colorPart.substr(0, colorPart.find_first_of(' '))); + PWINDOW->m_sSpecialRenderData.inactiveBorderColor = configStringToInt(colorPart.substr(colorPart.find_first_of(' ') + 1)); + } else { + PWINDOW->m_sSpecialRenderData.activeBorderColor = configStringToInt(colorPart); + } + } catch(std::exception& e) { + Debug::log(ERR, "BorderColor rule \"%s\" failed with: %s", r.szRule.c_str(), e.what()); + } } } @@ -259,7 +273,7 @@ void Events::listener_mapWindow(void* owner, void* data) { if (!PWORKSPACE) { std::string workspaceName = ""; int workspaceID = 0; - + if (requestedWorkspace.find("name:") == 0) { workspaceName = requestedWorkspace.substr(5); workspaceID = g_pCompositor->getNextAvailableNamedWorkspace(); |
