dialog: Check whether text changed when setting title or description

As usually with GObject setters, we should check whether the property
actually changed before setting the value and notifying the property. So
check whether the title or description text actually changed before
setting it.

This fixes a bug which makes the title flicker and change its size,
because when updating the title we remove the "leightweight" css class
and reapply it inside a later, which makes the title appear larger for
one frame.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2574

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1336
This commit is contained in:
Jonas Dreßler 2020-06-28 13:06:26 +02:00 committed by Florian Müllner
parent 481014ac9e
commit e4bb2037ca

View File

@ -228,6 +228,9 @@ var MessageDialogContent = GObject.registerClass({
} }
set title(title) { set title(title) {
if (this._title.text === title)
return;
_setLabel(this._title, title); _setLabel(this._title, title);
this._title.remove_style_class_name('leightweight'); this._title.remove_style_class_name('leightweight');
@ -237,6 +240,9 @@ var MessageDialogContent = GObject.registerClass({
} }
set description(description) { set description(description) {
if (this._description.text === description)
return;
_setLabel(this._description, description); _setLabel(this._description, description);
this.notify('description'); this.notify('description');
} }