diff --git a/src/config/ConfigManager.cpp b/src/config/ConfigManager.cpp index 250ee6e5..dc2d3d48 100644 --- a/src/config/ConfigManager.cpp +++ b/src/config/ConfigManager.cpp @@ -571,6 +571,7 @@ void CConfigManager::handleWindowRule(const std::string& command, const std::str && RULE.find("monitor") != 0 && RULE != "nofocus" && RULE != "noblur" + && RULE != "center" && RULE != "fullscreen" && RULE.find("animation") != 0 && RULE.find("rounding") != 0 diff --git a/src/events/Windows.cpp b/src/events/Windows.cpp index afedcf34..36f0b2db 100644 --- a/src/events/Windows.cpp +++ b/src/events/Windows.cpp @@ -224,6 +224,8 @@ void Events::listener_mapWindow(void* owner, void* data) { } 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; } }