Skip to content

dash: Ignore items animating out on redisplay - #2781

Open
ricardobsp wants to merge 1 commit into
ubuntu:masterfrom
ricardobsp:fix/redisplay-animating-out
Open

ricardobsp wants to merge 1 commit into
ubuntu:masterfrom
ricardobsp:fix/redisplay-animating-out

Conversation

@ricardobsp

Copy link
Copy Markdown

When the last window of a non-favorite app is closed, its item is animated out and only destroyed when the animation completes. If the app is running again before that (e.g. it replaces its only window with a new one, as a splash or welcome window does), _redisplay() still finds the old item in the box, considers the app as already in the dash and creates no new item. When the animation ends the old item is destroyed and the running app has no icon until something else triggers a redisplay.

Upstream GNOME Shell is not affected in practice, as it only animates removals while the overview is visible.

This ignores the items that are animating out, as getAppIcons() already does, and skips them when computing the position of new items.

Testing: GNOME Shell 51.1 (headless, animations enabled) with a GTK4 test app that destroys its only window and presents a new one 60 ms later. Without the patch the icon is gone after the swap; with it the icon stays, in the right position. Originally hit with IntelliJ IDEA closing and reopening a project. ESLint was not run locally.

Fixes: #801

When the last window of a non-favorite app is closed, its item is
animated out and only destroyed once the animation completes. If the app
is running again before that (for example because it replaces its only
window with a new one, as a splash or welcome window does), the redisplay
still finds the old item in the box, so it considers the app as already
being in the dash and does not create a new item for it. Once the
animation ends the old item is destroyed, and the running app has no
icon until something else triggers a redisplay.

Upstream is not affected in practice since it only animates removals
while the overview is visible, while we always do.

So, do not consider the items that are animating out as part of the
dash, as getAppIcons() already does, and skip them when computing the
position of the new items, since they are still in the box.

Fixes: ubuntu#801

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Icon disappears after setting animations on

1 participant