summaryrefslogtreecommitdiff
path: root/src/desktop/Window.cpp
diff options
context:
space:
mode:
authorMightyPlaza <123664421+MightyPlaza@users.noreply.github.com>2024-05-10 11:27:54 +0000
committerGitHub <noreply@github.com>2024-05-10 12:27:54 +0100
commitc19903eaf8f3908e864e57c8449325e9b5e0c9bd (patch)
tree7b3b4b688f5b30b998ca49d0dbe49dfd1c31a177 /src/desktop/Window.cpp
parentcc4ac52309a7715c09c1e19545bc0fa4048c4604 (diff)
windowrules add focusonactivate (#5976)
modified: src/config/ConfigManager.cpp modified: src/desktop/Window.cpp modified: src/desktop/Window.hpp
Diffstat (limited to 'src/desktop/Window.cpp')
-rw-r--r--src/desktop/Window.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/desktop/Window.cpp b/src/desktop/Window.cpp
index 2b95ad4c..e87bd99c 100644
--- a/src/desktop/Window.cpp
+++ b/src/desktop/Window.cpp
@@ -671,6 +671,8 @@ void CWindow::applyDynamicRule(const SWindowRule& r) {
m_sAdditionalConfigData.dimAround = true;
} else if (r.szRule == "keepaspectratio") {
m_sAdditionalConfigData.keepAspectRatio = true;
+ } else if (r.szRule.starts_with("focusonactivate")) {
+ m_sAdditionalConfigData.focusOnActivate = true;
} else if (r.szRule.starts_with("xray")) {
CVarList vars(r.szRule, 0, ' ');
@@ -745,6 +747,7 @@ void CWindow::updateDynamicRules() {
m_sAdditionalConfigData.forceRGBX = false;
m_sAdditionalConfigData.borderSize = -1;
m_sAdditionalConfigData.keepAspectRatio = false;
+ m_sAdditionalConfigData.focusOnActivate = false;
m_sAdditionalConfigData.xray = -1;
m_sAdditionalConfigData.forceTearing = false;
m_sAdditionalConfigData.nearestNeighbor = false;
@@ -1282,7 +1285,8 @@ void CWindow::activate(bool force) {
m_bIsUrgent = true;
- if (!force && (!*PFOCUSONACTIVATE || (m_eSuppressedEvents & SUPPRESS_ACTIVATE_FOCUSONLY) || (m_eSuppressedEvents & SUPPRESS_ACTIVATE)))
+ if (!force &&
+ (!(*PFOCUSONACTIVATE || m_sAdditionalConfigData.focusOnActivate) || (m_eSuppressedEvents & SUPPRESS_ACTIVATE_FOCUSONLY) || (m_eSuppressedEvents & SUPPRESS_ACTIVATE)))
return;
if (m_bIsFloating)