diff options
| author | nyx <nnyyxxxx@protonmail.com> | 2025-03-08 08:20:27 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-03-08 14:20:27 +0100 |
| commit | c544c5115c8d35a2212b3dcb93ae90cf8a9f8f0c (patch) | |
| tree | 166dfa8c4053549c909e015e02e9e32c9d88c25b /src/events/Windows.cpp | |
| parent | b80b64cd6c913f8c8ac820a1e4ca615a62ff958f (diff) | |
windowrules: store floating size on close instead of resize (#9569)
Diffstat (limited to 'src/events/Windows.cpp')
| -rw-r--r-- | src/events/Windows.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/events/Windows.cpp b/src/events/Windows.cpp index 399894f9..86e13d8e 100644 --- a/src/events/Windows.cpp +++ b/src/events/Windows.cpp @@ -716,6 +716,13 @@ void Events::listener_unmapWindow(void* owner, void* data) { g_pEventManager->postEvent(SHyprIPCEvent{"closewindow", std::format("{:x}", PWINDOW)}); EMIT_HOOK_EVENT("closeWindow", PWINDOW); + if (PWINDOW->m_bIsFloating && !PWINDOW->m_bIsX11 && + std::any_of(PWINDOW->m_vMatchedRules.begin(), PWINDOW->m_vMatchedRules.end(), [](const auto& r) { return r->ruleType == CWindowRule::RULE_PERSISTENTSIZE; })) { + Debug::log(LOG, "storing floating size {}x{} for window {}::{} on close", PWINDOW->m_vRealSize->value().x, PWINDOW->m_vRealSize->value().y, PWINDOW->m_szClass, + PWINDOW->m_szTitle); + g_pConfigManager->storeFloatingSize(PWINDOW, PWINDOW->m_vRealSize->value()); + } + PROTO::toplevelExport->onWindowUnmap(PWINDOW); if (PWINDOW->isFullscreen()) |
