summaryrefslogtreecommitdiff
path: root/src/events/Windows.cpp
diff options
context:
space:
mode:
authorK1llf0rce <fteppan@protonmail.com>2022-10-15 17:04:57 +0200
committerK1llf0rce <fteppan@protonmail.com>2022-10-15 17:04:57 +0200
commitdca30815b03d44fe25c9beeb32ddb4ca8429dd7b (patch)
tree311c30316a805874bcbb01609ef9e6dc600d8b8e /src/events/Windows.cpp
parentedeb759bb18fe9e8343d5d1c2ff8615811c23115 (diff)
add maxsize window rule
Diffstat (limited to 'src/events/Windows.cpp')
-rw-r--r--src/events/Windows.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/events/Windows.cpp b/src/events/Windows.cpp
index 9c352e63..6586163f 100644
--- a/src/events/Windows.cpp
+++ b/src/events/Windows.cpp
@@ -269,6 +269,21 @@ void Events::listener_mapWindow(void* owner, void* data) {
} catch (...) {
Debug::log(LOG, "Rule minsize failed, rule: %s -> %s", r.szRule.c_str(), r.szValue.c_str());
}
+ } else if (r.szRule.find("maxsize") == 0) {
+ try {
+ const auto VALUE = r.szRule.substr(r.szRule.find(" ") + 1);
+ const auto SIZEXSTR = VALUE.substr(0, VALUE.find(" "));
+ const auto SIZEYSTR = VALUE.substr(VALUE.find(" ") + 1);
+
+ const auto SIZE = Vector2D(std::min((double)std::stoll(SIZEXSTR), PWINDOW->m_vRealSize.goalv().x), std::min((double)std::stoll(SIZEYSTR), PWINDOW->m_vRealSize.goalv().y));
+
+ PWINDOW->m_vRealSize = SIZE;
+ g_pXWaylandManager->setWindowSize(PWINDOW, PWINDOW->m_vRealSize.goalv());
+
+ PWINDOW->setHidden(false);
+ } catch (...) {
+ Debug::log(LOG, "Rule maxsize failed, rule: %s -> %s", r.szRule.c_str(), r.szValue.c_str());
+ }
} else if (r.szRule.find("move") == 0) {
try {
const auto VALUE = r.szRule.substr(r.szRule.find(" ") + 1);