special: add misc:close_special_on_empty

fixes #3156
This commit is contained in:
vaxerski 2023-09-03 13:00:02 +02:00
parent 01c6c5ae22
commit 5e0cf7d6a5
2 changed files with 9 additions and 0 deletions

View file

@ -386,6 +386,8 @@ void unregisterVar(void* ptr) {
} }
void CWindow::onUnmap() { void CWindow::onUnmap() {
static auto* const PCLOSEONLASTSPECIAL = &g_pConfigManager->getConfigValuePtr("misc:close_special_on_empty")->intValue;
if (g_pCompositor->m_pLastWindow == this) if (g_pCompositor->m_pLastWindow == this)
g_pCompositor->m_pLastWindow = nullptr; g_pCompositor->m_pLastWindow = nullptr;
@ -405,6 +407,12 @@ void CWindow::onUnmap() {
m_pWLSurface.unassign(); m_pWLSurface.unassign();
hyprListener_unmapWindow.removeCallback(); hyprListener_unmapWindow.removeCallback();
if (*PCLOSEONLASTSPECIAL && g_pCompositor->getWindowsOnWorkspace(m_iWorkspaceID) == 0 && g_pCompositor->isWorkspaceSpecial(m_iWorkspaceID)) {
const auto PMONITOR = g_pCompositor->getMonitorFromID(m_iMonitorID);
if (PMONITOR)
PMONITOR->setSpecialWorkspace(nullptr);
}
} }
void CWindow::onMap() { void CWindow::onMap() {

View file

@ -113,6 +113,7 @@ void CConfigManager::setDefaultVars() {
configValues["misc:render_titles_in_groupbar"].intValue = 1; configValues["misc:render_titles_in_groupbar"].intValue = 1;
configValues["misc:groupbar_titles_font_size"].intValue = 8; configValues["misc:groupbar_titles_font_size"].intValue = 8;
configValues["misc:groupbar_gradients"].intValue = 1; configValues["misc:groupbar_gradients"].intValue = 1;
configValues["misc:close_special_on_empty"].intValue = 1;
configValues["misc:groupbar_text_color"].intValue = 0xffffffff; configValues["misc:groupbar_text_color"].intValue = 0xffffffff;
configValues["misc:background_color"].intValue = 0xff111111; configValues["misc:background_color"].intValue = 0xff111111;