summaryrefslogtreecommitdiff
path: root/src/events/Windows.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/events/Windows.cpp')
-rw-r--r--src/events/Windows.cpp17
1 files changed, 10 insertions, 7 deletions
diff --git a/src/events/Windows.cpp b/src/events/Windows.cpp
index ca5d88c6..1c95a1e5 100644
--- a/src/events/Windows.cpp
+++ b/src/events/Windows.cpp
@@ -40,11 +40,12 @@ void setAnimToMove(void* data) {
void Events::listener_mapWindow(void* owner, void* data) {
CWindow* PWINDOW = (CWindow*)owner;
- static auto* const PINACTIVEALPHA = &g_pConfigManager->getConfigValuePtr("decoration:inactive_opacity")->floatValue;
- static auto* const PACTIVEALPHA = &g_pConfigManager->getConfigValuePtr("decoration:active_opacity")->floatValue;
- static auto* const PDIMSTRENGTH = &g_pConfigManager->getConfigValuePtr("decoration:dim_strength")->floatValue;
- static auto* const PSWALLOW = &g_pConfigManager->getConfigValuePtr("misc:enable_swallow")->intValue;
- static auto* const PSWALLOWREGEX = &g_pConfigManager->getConfigValuePtr("misc:swallow_regex")->strValue;
+ static auto* const PINACTIVEALPHA = &g_pConfigManager->getConfigValuePtr("decoration:inactive_opacity")->floatValue;
+ static auto* const PACTIVEALPHA = &g_pConfigManager->getConfigValuePtr("decoration:active_opacity")->floatValue;
+ static auto* const PDIMSTRENGTH = &g_pConfigManager->getConfigValuePtr("decoration:dim_strength")->floatValue;
+ static auto* const PSWALLOW = &g_pConfigManager->getConfigValuePtr("misc:enable_swallow")->intValue;
+ static auto* const PSWALLOWREGEX = &g_pConfigManager->getConfigValuePtr("misc:swallow_regex")->strValue;
+ static auto* const PSWALLOWEXREGEX = &g_pConfigManager->getConfigValuePtr("misc:swallow_exception_regex")->strValue;
auto PMONITOR = g_pCompositor->m_pLastMonitor;
const auto PWORKSPACE =
@@ -553,8 +554,10 @@ void Events::listener_mapWindow(void* owner, void* data) {
}
if (finalFound) {
- // check if it's the window we want
- if (std::regex_match(g_pXWaylandManager->getAppIDClass(finalFound), rgx)) {
+ std::regex exc(*PSWALLOWEXREGEX);
+ // check if it's the window we want & not exempt from getting swallowed
+ if (std::regex_match(g_pXWaylandManager->getAppIDClass(finalFound), rgx) &&
+ !std::regex_match(g_pXWaylandManager->getTitle(finalFound), exc)) {
// swallow
PWINDOW->m_pSwallowed = finalFound;