shellEntry: Restore natural-height-set instead of forcing it
If we are transitioning the label from 0 to its natural height, we must set natural-height-set again after querying the preferred height, otherwise Clutter would skip the transition. However when transitioning in the opposite direction, setting the property to true can go horribly wrong: If the actor hasn't been allocated before, it will store a fixed natural height of 0. But as there is no fixed min-height, we can end up with min-height > natural-height, which is a fatal error. (This isn't an issue when *actually* setting a fixed height, as that will set both natural and minimum height) So instead of always setting natural-height-set to true, restore its previous value to fix the issue. https://gitlab.gnome.org/GNOME/gnome-shell/issues/2255
This commit is contained in:
parent
4759197200
commit
3633e1feca
@ -191,9 +191,10 @@ class CapsLockWarning extends St.Label {
|
|||||||
|
|
||||||
this.remove_all_transitions();
|
this.remove_all_transitions();
|
||||||
|
|
||||||
|
const { naturalHeightSet } = this;
|
||||||
this.natural_height_set = false;
|
this.natural_height_set = false;
|
||||||
let [, height] = this.get_preferred_height(-1);
|
let [, height] = this.get_preferred_height(-1);
|
||||||
this.natural_height_set = true;
|
this.natural_height_set = naturalHeightSet;
|
||||||
|
|
||||||
this.ease({
|
this.ease({
|
||||||
height: capsLockOn ? height : 0,
|
height: capsLockOn ? height : 0,
|
||||||
|
Loading…
Reference in New Issue
Block a user