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.disconnect(this._viewLoadedHandlerId);
|
||||||
this._viewLoadedHandlerId = 0;
|
this._viewLoadedHandlerId = 0;
|
||||||
}
|
}
|
||||||
this._grid.opacity = 255;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
animate(animationDirection, onComplete) {
|
animate(animationDirection, onComplete) {
|
||||||
@ -666,6 +665,7 @@ var BaseAppView = GObject.registerClass({
|
|||||||
}
|
}
|
||||||
|
|
||||||
this._clearAnimateLater();
|
this._clearAnimateLater();
|
||||||
|
this._grid.opacity = 255;
|
||||||
|
|
||||||
if (animationDirection == IconGrid.AnimationDirection.IN) {
|
if (animationDirection == IconGrid.AnimationDirection.IN) {
|
||||||
const doSpringAnimationLater = laterType => {
|
const doSpringAnimationLater = laterType => {
|
||||||
@ -684,6 +684,7 @@ var BaseAppView = GObject.registerClass({
|
|||||||
this._viewLoadedHandlerId = this.connect('view-loaded',
|
this._viewLoadedHandlerId = this.connect('view-loaded',
|
||||||
() => {
|
() => {
|
||||||
this._clearAnimateLater();
|
this._clearAnimateLater();
|
||||||
|
this._grid.opacity = 255;
|
||||||
doSpringAnimationLater(Meta.LaterType.BEFORE_REDRAW);
|
doSpringAnimationLater(Meta.LaterType.BEFORE_REDRAW);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user