summaryrefslogtreecommitdiff
path: root/src/events/Windows.cpp
diff options
context:
space:
mode:
authorTom Benham <38216488+tomben13@users.noreply.github.com>2025-02-05 10:56:41 +0100
committerGitHub <noreply@github.com>2025-02-05 09:56:41 +0000
commit84c9baecc6b73f6321b2739061e3c232710f73bf (patch)
tree30bf9787abd8c5c2b7ca069de390bb78576b3bb9 /src/events/Windows.cpp
parent3b99e906df8b439d65e740301940e57efc057012 (diff)
keybinds: Added `toggleswallow` dispatcher (#5548)
* Added `toggleswallow` dispatcher * clang-format * Removed brackets for 1-line if
Diffstat (limited to 'src/events/Windows.cpp')
-rw-r--r--src/events/Windows.cpp13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/events/Windows.cpp b/src/events/Windows.cpp
index a068ba07..d96bb332 100644
--- a/src/events/Windows.cpp
+++ b/src/events/Windows.cpp
@@ -392,6 +392,8 @@ void Events::listener_mapWindow(void* owner, void* data) {
// Verify window swallowing. Get the swallower before calling onWindowCreated(PWINDOW) because getSwallower() wouldn't get it after if PWINDOW gets auto grouped.
const auto SWALLOWER = PWINDOW->getSwallower();
PWINDOW->m_pSwallowed = SWALLOWER;
+ if (PWINDOW->m_pSwallowed)
+ PWINDOW->m_pSwallowed->m_bCurrentlySwallowed = true;
if (PWINDOW->m_bIsFloating) {
g_pLayoutManager->getCurrentLayout()->onWindowCreated(PWINDOW);
@@ -731,12 +733,15 @@ void Events::listener_unmapWindow(void* owner, void* data) {
// swallowing
if (valid(PWINDOW->m_pSwallowed)) {
- PWINDOW->m_pSwallowed->setHidden(false);
+ if (PWINDOW->m_pSwallowed->m_bCurrentlySwallowed) {
+ PWINDOW->m_pSwallowed->m_bCurrentlySwallowed = false;
+ PWINDOW->m_pSwallowed->setHidden(false);
- if (PWINDOW->m_sGroupData.pNextWindow.lock())
- PWINDOW->m_pSwallowed->m_bGroupSwallowed = true; // flag for the swallowed window to be created into the group where it belongs when auto_group = false.
+ if (PWINDOW->m_sGroupData.pNextWindow.lock())
+ PWINDOW->m_pSwallowed->m_bGroupSwallowed = true; // flag for the swallowed window to be created into the group where it belongs when auto_group = false.
- g_pLayoutManager->getCurrentLayout()->onWindowCreated(PWINDOW->m_pSwallowed.lock());
+ g_pLayoutManager->getCurrentLayout()->onWindowCreated(PWINDOW->m_pSwallowed.lock());
+ }
PWINDOW->m_pSwallowed->m_bGroupSwallowed = false;
PWINDOW->m_pSwallowed.reset();