From 7086b0731f9bf172c0550d1fe71daa88db91f935 Mon Sep 17 00:00:00 2001 From: littleblack111 Date: Sun, 22 Feb 2026 17:28:02 +0800 Subject: group: disband_on_empty config --- src/desktop/view/Group.cpp | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'src/desktop/view/Group.cpp') diff --git a/src/desktop/view/Group.cpp b/src/desktop/view/Group.cpp index 67a89986..d017e8f4 100644 --- a/src/desktop/view/Group.cpp +++ b/src/desktop/view/Group.cpp @@ -121,6 +121,8 @@ void CGroup::add(PHLWINDOW w) { } void CGroup::remove(PHLWINDOW w) { + static auto DISBAND_ON_EMPTY = CConfigValue("group:disband_on_empty"); + std::optional idx; for (size_t i = 0; i < m_windows.size(); ++i) { if (m_windows.at(i) == w) { @@ -158,6 +160,11 @@ void CGroup::remove(PHLWINDOW w) { // do this here: otherwise the new current is hidden and workspace rules get wrong data if (!REMOVING_GROUP) w->m_target->assignToSpace(m_target->space()); + + if (*DISBAND_ON_EMPTY && m_windows.size() == 1) { + destroy(); + return; + } } void CGroup::moveCurrent(bool next) { -- cgit v1.2.3