diff options
| author | vaxerski <43317083+vaxerski@users.noreply.github.com> | 2022-08-01 12:51:52 +0200 |
|---|---|---|
| committer | vaxerski <43317083+vaxerski@users.noreply.github.com> | 2022-08-01 12:51:52 +0200 |
| commit | f892387b7020ce27dbcf370244e26e09c9ecc1e5 (patch) | |
| tree | 695902a254644b32a1589fd579403b7115d71223 /src/layout/DwindleLayout.cpp | |
| parent | 6378990bc3e80fed74b30dc0e82fb051e2dbe1fa (diff) | |
added dwindle:no_gaps_when_only
Diffstat (limited to 'src/layout/DwindleLayout.cpp')
| -rw-r--r-- | src/layout/DwindleLayout.cpp | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/src/layout/DwindleLayout.cpp b/src/layout/DwindleLayout.cpp index 3ff24aa0..be1c23d8 100644 --- a/src/layout/DwindleLayout.cpp +++ b/src/layout/DwindleLayout.cpp @@ -63,7 +63,7 @@ void SDwindleNodeData::getAllChildrenRecursive(std::deque<SDwindleNodeData*>* pD int CHyprDwindleLayout::getNodesOnWorkspace(const int& id) { int no = 0; for (auto& n : m_lDwindleNodesData) { - if (n.workspaceID == id) + if (n.workspaceID == id && n.valid) ++no; } return no; @@ -137,9 +137,24 @@ void CHyprDwindleLayout::applyNodeDataToWindow(SDwindleNodeData* pNode) { PWINDOW->m_vSize = pNode->size; PWINDOW->m_vPosition = pNode->position; + static auto *const PNOGAPSWHENONLY = &g_pConfigManager->getConfigValuePtr("dwindle:no_gaps_when_only")->intValue; + auto calcPos = PWINDOW->m_vPosition + Vector2D(BORDERSIZE, BORDERSIZE); auto calcSize = PWINDOW->m_vSize - Vector2D(2 * BORDERSIZE, 2 * BORDERSIZE); + if (*PNOGAPSWHENONLY && PWINDOW->m_iWorkspaceID != SPECIAL_WORKSPACE_ID && getNodesOnWorkspace(PWINDOW->m_iWorkspaceID) == 1) { + PWINDOW->m_vRealPosition = calcPos; + PWINDOW->m_vRealSize = calcSize; + + PWINDOW->updateWindowDecos(); + + PWINDOW->m_sSpecialRenderData.rounding = false; + + return; + } + + PWINDOW->m_sSpecialRenderData.rounding = true; + const auto OFFSETTOPLEFT = Vector2D(DISPLAYLEFT ? GAPSOUT : GAPSIN, DISPLAYTOP ? GAPSOUT : GAPSIN); @@ -378,6 +393,9 @@ void CHyprDwindleLayout::onWindowRemovedTiling(CWindow* pWindow) { } } + PPARENT->valid = false; + PNODE->valid = false; + if (PSIBLING->pParent) PSIBLING->pParent->recalcSizePosRecursive(); else |
