summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMightyPlaza <123664421+MightyPlaza@users.noreply.github.com>2023-09-03 15:23:13 +0000
committerGitHub <noreply@github.com>2023-09-03 17:23:13 +0200
commit8fefb180b1f4bd62cd866f4c3d1d93ed3f019536 (patch)
treebeeaafdd467f28761f87887978473df870ce063a /src
parent5126bfab72ff0cf74ebd4c6346e19ac52ea7b00b (diff)
windowrules: Monitor rule fix (#3157)
* fix monitor rules modified: src/events/Windows.cpp * exec on workspace as silent when special is open modified: src/events/Windows.cpp
Diffstat (limited to 'src')
-rw-r--r--src/events/Windows.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/events/Windows.cpp b/src/events/Windows.cpp
index 65fb154f..888f0447 100644
--- a/src/events/Windows.cpp
+++ b/src/events/Windows.cpp
@@ -142,11 +142,11 @@ void Events::listener_mapWindow(void* owner, void* data) {
const auto PMONITORFROMID = g_pCompositor->getMonitorFromID(PWINDOW->m_iMonitorID);
- PWINDOW->m_iWorkspaceID = PMONITOR->specialWorkspaceID ? PMONITOR->specialWorkspaceID : PMONITOR->activeWorkspace;
if (PWINDOW->m_iMonitorID != PMONITOR->ID) {
g_pKeybindManager->m_mDispatchers["focusmonitor"](std::to_string(PWINDOW->m_iMonitorID));
PMONITOR = PMONITORFROMID;
}
+ PWINDOW->m_iWorkspaceID = PMONITOR->specialWorkspaceID ? PMONITOR->specialWorkspaceID : PMONITOR->activeWorkspace;
Debug::log(ERR, "Rule monitor, applying to window %lx -> mon: %i, workspace: %i", PWINDOW, PWINDOW->m_iMonitorID, PWINDOW->m_iWorkspaceID);
} catch (std::exception& e) { Debug::log(ERR, "Rule monitor failed, rule: %s -> %s | err: %s", r.szRule.c_str(), r.szValue.c_str(), e.what()); }
@@ -248,6 +248,9 @@ void Events::listener_mapWindow(void* owner, void* data) {
PWINDOW->m_iWorkspaceID = pWorkspace->m_iID;
PWINDOW->m_iMonitorID = pWorkspace->m_iMonitorID;
+ if (g_pCompositor->getMonitorFromID(PWINDOW->m_iMonitorID)->specialWorkspaceID && !pWorkspace->m_bIsSpecialWorkspace)
+ workspaceSilent = true;
+
if (!workspaceSilent) {
if (pWorkspace->m_bIsSpecialWorkspace)
g_pCompositor->getMonitorFromID(pWorkspace->m_iMonitorID)->setSpecialWorkspace(pWorkspace);