[gnome-shell/wip/mcrha/issue1875: 19/24] calendar: Update events on changes



commit 6eb1bc847c5d85a4b3f884f5024e352e1af028dc
Author: Florian Müllner <fmuellner gnome org>
Date:   Thu Apr 9 12:50:39 2020 +0200

    calendar: Update events on changes
    
    We track messages so that we can account for just added and removed
    events instead of having to rebuild the entire list, however it's
    also possible that the time or summary of an existing event changed.
    
    Account for that by updating existing messages in-place.
    
    https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1192

 js/ui/calendar.js | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)
---
diff --git a/js/ui/calendar.js b/js/ui/calendar.js
index 286aac1e10..f38544c8bd 100644
--- a/js/ui/calendar.js
+++ b/js/ui/calendar.js
@@ -701,12 +701,11 @@ var Calendar = GObject.registerClass({
 var EventMessage = GObject.registerClass(
 class EventMessage extends MessageList.Message {
     _init(event, date) {
-        super._init('', event.summary);
+        super._init('', '');
 
-        this._event = event;
         this._date = date;
 
-        this.setTitle(this._formatEventTime());
+        this.update(event);
 
         this._icon = new St.Icon({ icon_name: 'x-office-calendar-symbolic' });
         this.setIcon(this._icon);
@@ -718,6 +717,13 @@ class EventMessage extends MessageList.Message {
         super.vfunc_style_changed();
     }
 
+    update(event) {
+        this._event = event;
+
+        this.setTitle(this._formatEventTime());
+        this.setBody(event.summary);
+    }
+
     _formatEventTime() {
         let periodBegin = _getBeginningOfDay(this._date);
         let periodEnd = _getEndOfDay(this._date);
@@ -901,6 +907,7 @@ class EventsSection extends MessageList.MessageListSection {
                 this._messageById.set(event.id, message);
                 this.addMessage(message, false);
             } else {
+                message.update(event);
                 this.moveMessage(message, i, false);
             }
         }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]