From d91a280b144e6bf523187033f696214fcbff9ad0 Mon Sep 17 00:00:00 2001 From: Romain Vigier Date: Sat, 5 Nov 2022 10:33:37 +0100 Subject: [PATCH] Timer: Make sure calculated schedule is in a valid range --- ...rg.gnome.shell.extensions.nightthemeswitcher.gschema.xml | 3 +++ src/modules/Timer.js | 6 ++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/data/org.gnome.shell.extensions.nightthemeswitcher.gschema.xml b/src/data/org.gnome.shell.extensions.nightthemeswitcher.gschema.xml index 9797c21..19d09b6 100644 --- a/src/data/org.gnome.shell.extensions.nightthemeswitcher.gschema.xml +++ b/src/data/org.gnome.shell.extensions.nightthemeswitcher.gschema.xml @@ -72,15 +72,18 @@ SPDX-License-Identifier: GPL-3.0-or-later false + 6 + 20 (91,181) + 0.4 diff --git a/src/modules/Timer.js b/src/modules/Timer.js index 25ac585..ba8ab1b 100644 --- a/src/modules/Timer.js +++ b/src/modules/Timer.js @@ -350,9 +350,11 @@ var Timer = class extends GObject.Object { const timeSunrise = solarNoon - haSunrise * 4 / 1440; const timeSunset = solarNoon + haSunrise * 4 / 1440; + const modulo = (n, m) => ((n % m) + m) % m; + const offset = this.#settings.get_double('offset'); - const sunrise = timeSunrise * 24 + offset; - const sunset = timeSunset * 24 - offset; + const sunrise = modulo(timeSunrise * 24 + offset, 24); + const sunset = modulo(timeSunset * 24 - offset, 24); this.#settings.set_double('sunrise', sunrise); this.#settings.set_double('sunset', sunset);