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.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/events/Windows.cpp b/src/events/Windows.cpp
index e79f1e74..a45aa91e 100644
--- a/src/events/Windows.cpp
+++ b/src/events/Windows.cpp
@@ -412,8 +412,13 @@ void Events::listener_mapWindow(void* owner, void* data) {
PWINDOW->setHidden(false);
} catch (...) { Debug::log(LOG, "Rule move failed, rule: %s -> %s", r.szRule.c_str(), r.szValue.c_str()); }
- } else if (r.szRule == "center") {
- PWINDOW->m_vRealPosition = PMONITOR->vecPosition + PMONITOR->vecSize / 2.f - PWINDOW->m_vRealSize.goalv() / 2.f;
+ } else if (r.szRule.find("center") == 0) {
+ auto RESERVEDOFFSET = Vector2D();
+ const auto ARGS = CVarList(r.szRule, 2, ' ');
+ if (ARGS[1] == "1")
+ RESERVEDOFFSET = (PMONITOR->vecReservedTopLeft - PMONITOR->vecReservedBottomRight) / 2.f;
+
+ PWINDOW->m_vRealPosition = PMONITOR->vecPosition + PMONITOR->vecSize / 2.f - PWINDOW->m_vRealSize.goalv() / 2.f + RESERVEDOFFSET;
}
}