gnome-shell/js
Daniel van Vugt e781e1fdba iconGrid: Create icon clones in a separate loop
For reasons not yet fully understood, `Main.uiGroup.add_actor` takes around
10 milliseconds to complete.

Because of this, each `actor.opacity = 0` has a good chance of falling
on a different frame. And when it does, `_opacityChangedId` also lands
on multiple different frames each incurring a separate relayout cycle.
It is this excessive number of relayouts that causes stuttering in the
icon grid animation (#2065). But it is the slowness of `uiGroup.add_actor`
that causes the number to be excessive when it should be one.

By creating the clones and adding them to `uiGroup` early, we then enable
the existing loop starting the animation to complete within a single frame.
And by completing within a single frame all the opacity changes land within
the same frame interval, thus incurring only a single relayout instead of
many.

This issue went unnoticed until 004a5e1042 (!704), after which the slow
emissions of `notify::opacity` became a more visible performance problem.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/issues/2065

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1002
2020-02-19 15:39:21 +00:00
..
extensionPrefs js: Don't use templates in files with translations 2020-02-17 23:20:40 +01:00
gdm authPrompt: Fix cancel button visibility 2020-02-18 21:34:16 +00:00
misc js: Don't use templates in files with translations 2020-02-17 23:20:40 +01:00
perf cleanup: Require "dangling" commas 2019-11-11 19:25:14 +00:00
portalHelper js: Don't use templates in files with translations 2020-02-17 23:20:40 +01:00
ui iconGrid: Create icon clones in a separate loop 2020-02-19 15:39:21 +00:00
js-resources.gresource.xml swipeTracker: Introduce swipe tracker 2020-01-10 18:20:22 +01:00
meson.build build: Use dedicated resources for helper programs 2018-08-14 17:28:04 +00:00
portal-resources.gresource.xml build: Include params.js in portal-helper gresources 2018-10-23 15:38:31 +00:00
prefs-resources.gresource.xml extensionPrefs: Move description into a expander 2020-02-03 19:11:21 +01:00