layouts: fix maximize size

This commit is contained in:
Vaxry 2025-12-06 11:32:01 +00:00
parent cedadf4fdc
commit d3c9c54b79
Signed by: vaxry
GPG key ID: 665806380871D640
3 changed files with 33 additions and 2 deletions

View file

@ -344,6 +344,35 @@ static bool testWindowFocusOnFullscreenConflict() {
return true; 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() { static bool test() {
NLog::log("{}Testing windows", Colors::GREEN); NLog::log("{}Testing windows", Colors::GREEN);
@ -714,6 +743,8 @@ static bool test() {
testGroupRules(); testGroupRules();
testMaximizeSize();
NLog::log("{}Reloading config", Colors::YELLOW); NLog::log("{}Reloading config", Colors::YELLOW);
OK(getFromSocket("/reload")); OK(getFromSocket("/reload"));

View file

@ -570,7 +570,7 @@ void CHyprDwindleLayout::calculateWorkspace(const PHLWORKSPACE& pWorkspace) {
SP<SDwindleNodeData> fakeNode = makeShared<SDwindleNodeData>(); SP<SDwindleNodeData> fakeNode = makeShared<SDwindleNodeData>();
fakeNode->self = fakeNode; fakeNode->self = fakeNode;
fakeNode->pWindow = PFULLWINDOW; fakeNode->pWindow = PFULLWINDOW;
fakeNode->box = PMONITOR->logicalBoxMinusReserved(); fakeNode->box = workAreaOnWorkspace(pWorkspace);
fakeNode->workspaceID = pWorkspace->m_id; fakeNode->workspaceID = pWorkspace->m_id;
PFULLWINDOW->m_position = fakeNode->box.pos(); PFULLWINDOW->m_position = fakeNode->box.pos();
PFULLWINDOW->m_size = fakeNode->box.size(); PFULLWINDOW->m_size = fakeNode->box.size();

View file

@ -322,7 +322,7 @@ void CHyprMasterLayout::calculateWorkspace(PHLWORKSPACE pWorkspace) {
} else if (pWorkspace->m_fullscreenMode == FSMODE_MAXIMIZED) { } else if (pWorkspace->m_fullscreenMode == FSMODE_MAXIMIZED) {
SMasterNodeData fakeNode; SMasterNodeData fakeNode;
fakeNode.pWindow = PFULLWINDOW; fakeNode.pWindow = PFULLWINDOW;
const auto WORKAREA = PMONITOR->logicalBoxMinusReserved(); const auto WORKAREA = workAreaOnWorkspace(pWorkspace);
fakeNode.position = WORKAREA.pos(); fakeNode.position = WORKAREA.pos();
fakeNode.size = WORKAREA.size(); fakeNode.size = WORKAREA.size();
fakeNode.workspaceID = pWorkspace->m_id; fakeNode.workspaceID = pWorkspace->m_id;