iconGrid: Only animate visible icons
Mutter recently added an optimization to only allocate visible children [1]. That broke ClutterClones, but it was subsequently fixed [2]. However, that exposed a third problem, this time with FrequentView: visible but transparent icons, that are not allocated by the icon grid, were cloned and animated during the spring animation. Only animate visible icons with opacity greater than 0. [1] https://gitlab.gnome.org/GNOME/mutter/commit/0eab73dc [2] https://gitlab.gnome.org/GNOME/mutter/commit/08a3cbfc https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/696
This commit is contained in:
parent
3d86e6e791
commit
413c677fcf
@ -427,7 +427,7 @@ var IconGrid = GObject.registerClass({
|
|||||||
* set of items to be animated.
|
* set of items to be animated.
|
||||||
*/
|
*/
|
||||||
_getChildrenToAnimate() {
|
_getChildrenToAnimate() {
|
||||||
return this._getVisibleChildren();
|
return this._getVisibleChildren().filter(child => child.opacity > 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
_resetAnimationActors() {
|
_resetAnimationActors() {
|
||||||
@ -884,7 +884,7 @@ var PaginatedIconGrid = GObject.registerClass({
|
|||||||
|
|
||||||
// Overridden from IconGrid
|
// Overridden from IconGrid
|
||||||
_getChildrenToAnimate() {
|
_getChildrenToAnimate() {
|
||||||
let children = this._getVisibleChildren();
|
let children = super._getChildrenToAnimate();
|
||||||
let firstIndex = this._childrenPerPage * this.currentPage;
|
let firstIndex = this._childrenPerPage * this.currentPage;
|
||||||
let lastIndex = firstIndex + this._childrenPerPage;
|
let lastIndex = firstIndex + this._childrenPerPage;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user