[gnome-shell/gnome-41] dateMenu: Use intervals with non-inclusive ends for date ranges



commit 507d3a08216743f31e2cddb7f000cfb575cc4882
Author: Sebastian Keller <skeller gnome org>
Date:   Thu Nov 4 12:42:52 2021 +0100

    dateMenu: Use intervals with non-inclusive ends for date ranges
    
    The ical events, we are comparing these intervals to use the first point
    in time after the end of the event as their end time, while the code in
    gnome-shell was using the last point in time within the range. This was
    causing multi-day events ranging from 0:00 to 0:00 to have a trailing
    "..." shown on the last day.
    
    Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2023>
    (cherry picked from commit 2fffe914889142e4088baebccbe38a285f6a23c3)

 js/ui/calendar.js |  7 ++-----
 js/ui/dateMenu.js | 13 +++++++------
 2 files changed, 9 insertions(+), 11 deletions(-)
---
diff --git a/js/ui/calendar.js b/js/ui/calendar.js
index 8ccc73d709..0ff103f2c4 100644
--- a/js/ui/calendar.js
+++ b/js/ui/calendar.js
@@ -47,11 +47,8 @@ function _getBeginningOfDay(date) {
 }
 
 function _getEndOfDay(date) {
-    let ret = new Date(date.getTime());
-    ret.setHours(23);
-    ret.setMinutes(59);
-    ret.setSeconds(59);
-    ret.setMilliseconds(999);
+    const ret = _getBeginningOfDay(date);
+    ret.setDate(ret.getDate() + 1);
     return ret;
 }
 
diff --git a/js/ui/dateMenu.js b/js/ui/dateMenu.js
index 33c054c12f..f235ba38a2 100644
--- a/js/ui/dateMenu.js
+++ b/js/ui/dateMenu.js
@@ -127,9 +127,10 @@ class EventsSection extends St.Button {
     }
 
     setDate(date) {
-        const day = [date.getFullYear(), date.getMonth(), date.getDate()];
-        this._startDate = new Date(...day);
-        this._endDate = new Date(...day, 23, 59, 59, 999);
+        this._startDate =
+            new Date(date.getFullYear(), date.getMonth(), date.getDate());
+        this._endDate =
+            new Date(date.getFullYear(), date.getMonth(), date.getDate() + 1);
 
         this._updateTitle();
         this._reloadEvents();
@@ -156,11 +157,11 @@ class EventsSection extends St.Button {
         const timeSpanDay = GLib.TIME_SPAN_DAY / 1000;
         const now = new Date();
 
-        if (this._startDate <= now && now <= this._endDate)
+        if (this._startDate <= now && now < this._endDate)
             this._title.text = _('Today');
-        else if (this._endDate < now && now - this._endDate < timeSpanDay)
+        else if (this._endDate <= now && now - this._endDate < timeSpanDay)
             this._title.text = _('Yesterday');
-        else if (this._startDate > now && this._startDate - now < timeSpanDay)
+        else if (this._startDate > now && this._startDate - now <= timeSpanDay)
             this._title.text = _('Tomorrow');
         else if (this._startDate.getFullYear() === now.getFullYear())
             this._title.text = this._startDate.toLocaleFormat(sameYearFormat);


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