mirror of
https://github.com/hyprwm/Hyprland.git
synced 2025-08-01 12:41:55 -07:00
renderer: fix fade out on silent moves to special
This commit is contained in:
@@ -379,7 +379,10 @@ void CHyprRenderer::renderWorkspaceWindows(PHLMONITOR pMonitor, PHLWORKSPACE pWo
|
|||||||
if (w->m_bIsFloating)
|
if (w->m_bIsFloating)
|
||||||
continue; // floating are in the second pass
|
continue; // floating are in the second pass
|
||||||
|
|
||||||
if (pWorkspace->m_bIsSpecialWorkspace != w->onSpecialWorkspace())
|
// some things may force us to ignore the special/not special disparity
|
||||||
|
const bool IGNORE_SPECIAL_CHECK = w->m_iMonitorMovedFrom != -1 && (w->m_pWorkspace && !w->m_pWorkspace->isVisible());
|
||||||
|
|
||||||
|
if (!IGNORE_SPECIAL_CHECK && pWorkspace->m_bIsSpecialWorkspace != w->onSpecialWorkspace())
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
// render active window after all others of this pass
|
// render active window after all others of this pass
|
||||||
@@ -390,11 +393,14 @@ void CHyprRenderer::renderWorkspaceWindows(PHLMONITOR pMonitor, PHLWORKSPACE pWo
|
|||||||
|
|
||||||
// render the bad boy
|
// render the bad boy
|
||||||
renderWindow(w.lock(), pMonitor, time, true, RENDER_PASS_MAIN);
|
renderWindow(w.lock(), pMonitor, time, true, RENDER_PASS_MAIN);
|
||||||
|
w.reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (lastWindow)
|
if (lastWindow)
|
||||||
renderWindow(lastWindow, pMonitor, time, true, RENDER_PASS_MAIN);
|
renderWindow(lastWindow, pMonitor, time, true, RENDER_PASS_MAIN);
|
||||||
|
|
||||||
|
lastWindow.reset();
|
||||||
|
|
||||||
// Non-floating popup
|
// Non-floating popup
|
||||||
for (auto& w : windows) {
|
for (auto& w : windows) {
|
||||||
if (!w)
|
if (!w)
|
||||||
@@ -403,7 +409,10 @@ void CHyprRenderer::renderWorkspaceWindows(PHLMONITOR pMonitor, PHLWORKSPACE pWo
|
|||||||
if (w->m_bIsFloating)
|
if (w->m_bIsFloating)
|
||||||
continue; // floating are in the second pass
|
continue; // floating are in the second pass
|
||||||
|
|
||||||
if (pWorkspace->m_bIsSpecialWorkspace != w->onSpecialWorkspace())
|
// some things may force us to ignore the special/not special disparity
|
||||||
|
const bool IGNORE_SPECIAL_CHECK = w->m_iMonitorMovedFrom != -1 && (w->m_pWorkspace && !w->m_pWorkspace->isVisible());
|
||||||
|
|
||||||
|
if (!IGNORE_SPECIAL_CHECK && pWorkspace->m_bIsSpecialWorkspace != w->onSpecialWorkspace())
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
// render the bad boy
|
// render the bad boy
|
||||||
@@ -419,7 +428,10 @@ void CHyprRenderer::renderWorkspaceWindows(PHLMONITOR pMonitor, PHLWORKSPACE pWo
|
|||||||
if (!w->m_bIsFloating || w->m_bPinned)
|
if (!w->m_bIsFloating || w->m_bPinned)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (pWorkspace->m_bIsSpecialWorkspace != w->onSpecialWorkspace())
|
// some things may force us to ignore the special/not special disparity
|
||||||
|
const bool IGNORE_SPECIAL_CHECK = w->m_iMonitorMovedFrom != -1 && (w->m_pWorkspace && !w->m_pWorkspace->isVisible());
|
||||||
|
|
||||||
|
if (!IGNORE_SPECIAL_CHECK && pWorkspace->m_bIsSpecialWorkspace != w->onSpecialWorkspace())
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (pWorkspace->m_bIsSpecialWorkspace && w->m_pMonitor != pWorkspace->m_pMonitor)
|
if (pWorkspace->m_bIsSpecialWorkspace && w->m_pMonitor != pWorkspace->m_pMonitor)
|
||||||
|
Reference in New Issue
Block a user