windowrules: add subtract window option to move rule (#5770)

Co-authored-by: nix <nix@local>
This commit is contained in:
niki-on-github 2024-04-27 18:34:19 +02:00 committed by GitHub
parent e400a288d0
commit 55490637aa
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -387,10 +387,14 @@ void Events::listener_mapWindow(void* owner, void* data) {
int posY = 0; int posY = 0;
if (POSXSTR.starts_with("100%-")) { if (POSXSTR.starts_with("100%-")) {
const auto POSXRAW = POSXSTR.substr(5); const bool subtractWindow = POSXSTR.starts_with("100%-w-");
const auto POSXRAW = (subtractWindow) ? POSXSTR.substr(7) : POSXSTR.substr(5);
posX = posX =
PMONITOR->vecSize.x - (!POSXRAW.contains('%') ? std::stoi(POSXRAW) : std::stof(POSXRAW.substr(0, POSXRAW.length() - 1)) * 0.01 * PMONITOR->vecSize.x); PMONITOR->vecSize.x - (!POSXRAW.contains('%') ? std::stoi(POSXRAW) : std::stof(POSXRAW.substr(0, POSXRAW.length() - 1)) * 0.01 * PMONITOR->vecSize.x);
if (subtractWindow)
posX -= PWINDOW->m_vRealSize.goal().x;
if (CURSOR) if (CURSOR)
Debug::log(ERR, "Cursor is not compatible with 100%-, ignoring cursor!"); Debug::log(ERR, "Cursor is not compatible with 100%-, ignoring cursor!");
} else if (!CURSOR) { } else if (!CURSOR) {
@ -406,10 +410,14 @@ void Events::listener_mapWindow(void* owner, void* data) {
} }
if (POSYSTR.starts_with("100%-")) { if (POSYSTR.starts_with("100%-")) {
const auto POSYRAW = POSYSTR.substr(5); const bool subtractWindow = POSYSTR.starts_with("100%-w-");
const auto POSYRAW = (subtractWindow) ? POSYSTR.substr(7) : POSYSTR.substr(5);
posY = posY =
PMONITOR->vecSize.y - (!POSYRAW.contains('%') ? std::stoi(POSYRAW) : std::stof(POSYRAW.substr(0, POSYRAW.length() - 1)) * 0.01 * PMONITOR->vecSize.y); PMONITOR->vecSize.y - (!POSYRAW.contains('%') ? std::stoi(POSYRAW) : std::stof(POSYRAW.substr(0, POSYRAW.length() - 1)) * 0.01 * PMONITOR->vecSize.y);
if (subtractWindow)
posY -= PWINDOW->m_vRealSize.goal().y;
if (CURSOR) if (CURSOR)
Debug::log(ERR, "Cursor is not compatible with 100%-, ignoring cursor!"); Debug::log(ERR, "Cursor is not compatible with 100%-, ignoring cursor!");
} else if (!CURSOR) { } else if (!CURSOR) {