appDisplay: Don't change opacity on destruction
At the end of BaseAppView._clearAnimateLater(), the '_grid' actor's opacity is set to 255. As it turns out, _clearAnimateLater() is called, among others, by vfunc_unmap(). However, unmapping is part of the destruction process, and at the time it is called, '_grid' is already destroying, which makes GJS complain about accessing an invalid object. Don't change opacity on BaseAppView._clearAnimateLater(), and instead move it to the couple of places outside vfunc_unmap() that call it. https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1447
This commit is contained in:
parent
59549e0b13
commit
33bd038af2
@ -654,7 +654,6 @@ var BaseAppView = GObject.registerClass({
|
||||
this.disconnect(this._viewLoadedHandlerId);
|
||||
this._viewLoadedHandlerId = 0;
|
||||
}
|
||||
this._grid.opacity = 255;
|
||||
}
|
||||
|
||||
animate(animationDirection, onComplete) {
|
||||
@ -666,6 +665,7 @@ var BaseAppView = GObject.registerClass({
|
||||
}
|
||||
|
||||
this._clearAnimateLater();
|
||||
this._grid.opacity = 255;
|
||||
|
||||
if (animationDirection == IconGrid.AnimationDirection.IN) {
|
||||
const doSpringAnimationLater = laterType => {
|
||||
@ -684,6 +684,7 @@ var BaseAppView = GObject.registerClass({
|
||||
this._viewLoadedHandlerId = this.connect('view-loaded',
|
||||
() => {
|
||||
this._clearAnimateLater();
|
||||
this._grid.opacity = 255;
|
||||
doSpringAnimationLater(Meta.LaterType.BEFORE_REDRAW);
|
||||
});
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user