3
0
mirror of https://github.com/hyprwm/Hyprland.git synced 2025-10-29 11:22:47 +00:00

desktopAnimationMgr: don't set fade 0 for members of a fs group (#12091)

fixes a flash of opacity that shouldnt be there
This commit is contained in:
Vaxry 2025-10-22 11:32:42 +01:00 committed by GitHub
parent 892f642f58
commit 057695bc3f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 18 additions and 2 deletions

View File

@ -1037,6 +1037,16 @@ PHLWINDOW CWindow::getGroupWindowByIndex(int index) {
return curr;
}
bool CWindow::hasInGroup(PHLWINDOW w) {
PHLWINDOW curr = m_groupData.pNextWindow.lock();
while (curr && curr != m_self) {
if (curr == w)
return true;
curr = curr->m_groupData.pNextWindow.lock();
}
return false;
}
void CWindow::setGroupCurrent(PHLWINDOW pWindow) {
PHLWINDOW curr = m_groupData.pNextWindow.lock();
bool isMember = false;

View File

@ -379,6 +379,7 @@ class CWindow {
PHLWINDOW getGroupCurrent();
PHLWINDOW getGroupPrevious();
PHLWINDOW getGroupWindowByIndex(int);
bool hasInGroup(PHLWINDOW);
int getGroupSize();
bool canBeGroupedInto(PHLWINDOW pWindow);
void setGroupCurrent(PHLWINDOW pWindow);

View File

@ -459,6 +459,8 @@ void CDesktopAnimationManager::setFullscreenFadeAnimation(PHLWORKSPACE ws, eAnim
const auto FULLSCREEN = type == ANIMATION_TYPE_IN;
const auto FSWINDOW = ws->getFullscreenWindow();
for (auto const& w : g_pCompositor->m_windows) {
if (w->m_workspace == ws) {
@ -467,8 +469,11 @@ void CDesktopAnimationManager::setFullscreenFadeAnimation(PHLWORKSPACE ws, eAnim
if (!FULLSCREEN)
*w->m_alpha = 1.F;
else if (!w->isFullscreen())
*w->m_alpha = !w->m_createdOverFullscreen ? 0.f : 1.f;
else if (!w->isFullscreen()) {
const bool CREATED_OVER_FS = w->m_createdOverFullscreen;
const bool IS_IN_GROUP_OF_FS = FSWINDOW && FSWINDOW->hasInGroup(w);
*w->m_alpha = !CREATED_OVER_FS && !IS_IN_GROUP_OF_FS ? 0.f : 1.f;
}
}
}