From e32eeb1d454b029a24ca71f410896bf52839085d Mon Sep 17 00:00:00 2001 From: Vaxry <43317083+vaxerski@users.noreply.github.com> Date: Mon, 9 Mar 2026 19:00:51 +0000 Subject: [PATCH] algo/dwindle: do NOT use smart_split for overridden focal point (#13635) ref #13594 --- hyprtester/src/tests/main/dwindle.cpp | 8 ++++---- src/layout/algorithm/tiled/dwindle/DwindleAlgorithm.cpp | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/hyprtester/src/tests/main/dwindle.cpp b/hyprtester/src/tests/main/dwindle.cpp index 234bfc331..5504282d1 100644 --- a/hyprtester/src/tests/main/dwindle.cpp +++ b/hyprtester/src/tests/main/dwindle.cpp @@ -64,16 +64,16 @@ static void test13349() { { auto str = getFromSocket("/activewindow"); - EXPECT_CONTAINS(str, "at: 497,22"); - EXPECT_CONTAINS(str, "size: 456,1036"); + EXPECT_CONTAINS(str, "at: 22,547"); + EXPECT_CONTAINS(str, "size: 931,511"); } OK(getFromSocket("/dispatch movewindow r")); { auto str = getFromSocket("/activewindow"); - EXPECT_CONTAINS(str, "at: 967,22"); - EXPECT_CONTAINS(str, "size: 456,1036"); + EXPECT_CONTAINS(str, "at: 967,547"); + EXPECT_CONTAINS(str, "size: 931,511"); } // clean up diff --git a/src/layout/algorithm/tiled/dwindle/DwindleAlgorithm.cpp b/src/layout/algorithm/tiled/dwindle/DwindleAlgorithm.cpp index 7ef367538..4c9622c37 100644 --- a/src/layout/algorithm/tiled/dwindle/DwindleAlgorithm.cpp +++ b/src/layout/algorithm/tiled/dwindle/DwindleAlgorithm.cpp @@ -184,7 +184,7 @@ void CDwindleAlgorithm::addTarget(SP target, bool newTarget) { // whether or not the override persists after opening one window if (*PERMANENTDIRECTIONOVERRIDE == 0) m_overrideDirection = Math::DIRECTION_DEFAULT; - } else if (*PSMARTSPLIT == 1 || m_overrideFocalPoint) { + } else if (*PSMARTSPLIT == 1) { const auto PARENT_CENTER = NEWPARENT->box.pos() + NEWPARENT->box.size() / 2; const auto PARENT_PROPORTIONS = NEWPARENT->box.h / NEWPARENT->box.w; const auto DELTA = MOUSECOORDS - PARENT_CENTER; @@ -215,7 +215,7 @@ void CDwindleAlgorithm::addTarget(SP target, bool newTarget) { NEWPARENT->children[1] = OPENINGON; } } - } else if (*PFORCESPLIT == 0 || !newTarget) { + } else if (*PFORCESPLIT == 0 || !newTarget || m_overrideFocalPoint) { if ((SIDEBYSIDE && MOUSECOORDS.x < NEWPARENT->box.x + (NEWPARENT->box.w / 2.F)) || (!SIDEBYSIDE && MOUSECOORDS.y < NEWPARENT->box.y + (NEWPARENT->box.h / 2.F))) { // we are hovering over the first node, make PNODE first. NEWPARENT->children[1] = OPENINGON;