mirror of
https://github.com/hyprwm/Hyprland
synced 2024-11-26 08:45:58 +01:00
fix config reload on fullscreen mode maximized
This commit is contained in:
parent
c923b0e538
commit
4c4c36096b
1 changed files with 23 additions and 2 deletions
|
@ -387,6 +387,8 @@ void CHyprDwindleLayout::recalculateMonitor(const int& monid) {
|
||||||
if (!PWORKSPACE)
|
if (!PWORKSPACE)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
g_pHyprRenderer->damageMonitor(PMONITOR);
|
||||||
|
|
||||||
if (PMONITOR->specialWorkspaceOpen) {
|
if (PMONITOR->specialWorkspaceOpen) {
|
||||||
const auto TOPNODE = getMasterNodeOnWorkspace(SPECIAL_WORKSPACE_ID);
|
const auto TOPNODE = getMasterNodeOnWorkspace(SPECIAL_WORKSPACE_ID);
|
||||||
|
|
||||||
|
@ -397,9 +399,26 @@ void CHyprDwindleLayout::recalculateMonitor(const int& monid) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ignore any recalc events if we have a fullscreen window.
|
// Ignore any recalc events if we have a fullscreen window, but process if fullscreen mode 2
|
||||||
if (PWORKSPACE->m_bHasFullscreenWindow)
|
if (PWORKSPACE->m_bHasFullscreenWindow) {
|
||||||
|
if (PWORKSPACE->m_efFullscreenMode == FULLSCREEN_FULL)
|
||||||
|
return;
|
||||||
|
|
||||||
|
// massive hack from the fullscreen func
|
||||||
|
const auto PFULLWINDOW = g_pCompositor->getFullscreenWindowOnWorkspace(PWORKSPACE->m_iID);
|
||||||
|
|
||||||
|
SDwindleNodeData fakeNode;
|
||||||
|
fakeNode.pWindow = PFULLWINDOW;
|
||||||
|
fakeNode.position = PMONITOR->vecPosition + PMONITOR->vecReservedTopLeft;
|
||||||
|
fakeNode.size = PMONITOR->vecSize - PMONITOR->vecReservedTopLeft - PMONITOR->vecReservedBottomRight;
|
||||||
|
fakeNode.workspaceID = PWORKSPACE->m_iID;
|
||||||
|
PFULLWINDOW->m_vPosition = fakeNode.position;
|
||||||
|
PFULLWINDOW->m_vSize = fakeNode.size;
|
||||||
|
|
||||||
|
applyNodeDataToWindow(&fakeNode);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
const auto TOPNODE = getMasterNodeOnWorkspace(PMONITOR->activeWorkspace);
|
const auto TOPNODE = getMasterNodeOnWorkspace(PMONITOR->activeWorkspace);
|
||||||
|
|
||||||
|
@ -573,6 +592,8 @@ void CHyprDwindleLayout::fullscreenRequestForWindow(CWindow* pWindow, eFullscree
|
||||||
// we need to fix XWayland windows by sending them to NARNIA
|
// we need to fix XWayland windows by sending them to NARNIA
|
||||||
// because otherwise they'd still be recieving mouse events
|
// because otherwise they'd still be recieving mouse events
|
||||||
g_pCompositor->fixXWaylandWindowsOnWorkspace(PMONITOR->activeWorkspace);
|
g_pCompositor->fixXWaylandWindowsOnWorkspace(PMONITOR->activeWorkspace);
|
||||||
|
|
||||||
|
recalculateMonitor(PMONITOR->ID);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CHyprDwindleLayout::recalculateWindow(CWindow* pWindow) {
|
void CHyprDwindleLayout::recalculateWindow(CWindow* pWindow) {
|
||||||
|
|
Loading…
Reference in a new issue