diff --git a/hyprtester/src/tests/main/window.cpp b/hyprtester/src/tests/main/window.cpp index 5fa8b58fa..634f97909 100644 --- a/hyprtester/src/tests/main/window.cpp +++ b/hyprtester/src/tests/main/window.cpp @@ -344,6 +344,35 @@ static bool testWindowFocusOnFullscreenConflict() { return true; } +static void testMaximizeSize() { + NLog::log("{}Testing maximize size", Colors::GREEN); + + EXPECT(spawnKitty("kitty_A"), true); + + // check kitty properties. Maximizing shouldnt change its size + { + auto str = getFromSocket("/clients"); + EXPECT(str.contains("at: 22,22"), true); + EXPECT(str.contains("size: 1876,1036"), true); + EXPECT(str.contains("fullscreen: 0"), true); + } + + OK(getFromSocket("/dispatch fullscreen 1")); + + { + auto str = getFromSocket("/clients"); + EXPECT(str.contains("at: 22,22"), true); + EXPECT(str.contains("size: 1876,1036"), true); + EXPECT(str.contains("fullscreen: 0"), true); + } + + NLog::log("{}Killing all windows", Colors::YELLOW); + Tests::killAllWindows(); + + NLog::log("{}Expecting 0 windows", Colors::YELLOW); + EXPECT(Tests::windowCount(), 0); +} + static bool test() { NLog::log("{}Testing windows", Colors::GREEN); @@ -714,6 +743,8 @@ static bool test() { testGroupRules(); + testMaximizeSize(); + NLog::log("{}Reloading config", Colors::YELLOW); OK(getFromSocket("/reload")); diff --git a/src/layout/DwindleLayout.cpp b/src/layout/DwindleLayout.cpp index a268d8572..a12f90295 100644 --- a/src/layout/DwindleLayout.cpp +++ b/src/layout/DwindleLayout.cpp @@ -570,7 +570,7 @@ void CHyprDwindleLayout::calculateWorkspace(const PHLWORKSPACE& pWorkspace) { SP fakeNode = makeShared(); fakeNode->self = fakeNode; fakeNode->pWindow = PFULLWINDOW; - fakeNode->box = PMONITOR->logicalBoxMinusReserved(); + fakeNode->box = workAreaOnWorkspace(pWorkspace); fakeNode->workspaceID = pWorkspace->m_id; PFULLWINDOW->m_position = fakeNode->box.pos(); PFULLWINDOW->m_size = fakeNode->box.size(); diff --git a/src/layout/MasterLayout.cpp b/src/layout/MasterLayout.cpp index a998d3c8e..2c0dac7f5 100644 --- a/src/layout/MasterLayout.cpp +++ b/src/layout/MasterLayout.cpp @@ -322,7 +322,7 @@ void CHyprMasterLayout::calculateWorkspace(PHLWORKSPACE pWorkspace) { } else if (pWorkspace->m_fullscreenMode == FSMODE_MAXIMIZED) { SMasterNodeData fakeNode; fakeNode.pWindow = PFULLWINDOW; - const auto WORKAREA = PMONITOR->logicalBoxMinusReserved(); + const auto WORKAREA = workAreaOnWorkspace(pWorkspace); fakeNode.position = WORKAREA.pos(); fakeNode.size = WORKAREA.size(); fakeNode.workspaceID = pWorkspace->m_id;