unlockDialog: Bind source titles

After the recent notification changes, the title may still be null
when the source is originally added. Handle that case and make sure
we pick up later title changes by setting up a property binding.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3308>
This commit is contained in:
Florian Müllner 2024-05-09 14:01:26 +02:00
parent 2c43225575
commit fe24de3ef2

View File

@ -96,11 +96,13 @@ const NotificationsBox = GObject.registerClass({
box.add_child(textBox);
let title = new St.Label({
text: source.title,
style_class: 'unlock-dialog-notification-label',
x_expand: true,
x_align: Clutter.ActorAlign.START,
});
source.bind_property('title',
title, 'text',
GObject.BindingFlags.SYNC_CREATE);
textBox.add_child(title);
let count = source.unseenCount;
@ -127,9 +129,13 @@ const NotificationsBox = GObject.registerClass({
box.add_child(textBox);
let title = new St.Label({
text: source.title.replace(/\n/g, ' '),
style_class: 'unlock-dialog-notification-label',
});
source.bind_property_full('title',
title, 'text',
GObject.BindingFlags.SYNC_CREATE,
(bind, sourceVal) => [true, sourceVal?.replace(/\n/g, ' ') ?? ''],
null);
textBox.add_child(title);
let visible = false;