From e91c76f89b5e0369478057b65563f95e9dc826e6 Mon Sep 17 00:00:00 2001 From: WalcoFPV Date: Thu, 18 Jun 2020 10:08:02 +0200 Subject: [PATCH] DarkTheme auto change when prefers color scheme change --- src/js/DarkTheme.js | 28 +++++++++++++++++++--------- src/js/main.js | 3 +++ 2 files changed, 22 insertions(+), 9 deletions(-) diff --git a/src/js/DarkTheme.js b/src/js/DarkTheme.js index 384e691d..31303d84 100644 --- a/src/js/DarkTheme.js +++ b/src/js/DarkTheme.js @@ -12,18 +12,28 @@ DarkTheme.isDarkThemeEnabled = function (val) { return val === 0 || val === 2 && window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches; }; +DarkTheme.apply = function() { + if (this.isDarkThemeEnabled(this.configEnabled)) { + this.applyDark(); + } else { + this.applyNormal(); + } + + if (chrome.app.window !== undefined) { + windowWatcherUtil.passValue(chrome.app.window.get("receiver_msp"), 'darkTheme', this.isDarkThemeEnabled(this.configEnabled)); + } +}; + +DarkTheme.autoSet = function() { + if (this.configEnabled === 2) { + this.apply(); + } +}; + DarkTheme.setConfig = function (result) { if (this.configEnabled != result) { this.configEnabled = result; - - if (this.isDarkThemeEnabled(this.configEnabled)) { - this.applyDark(); - } else { - this.applyNormal(); - } - - windowWatcherUtil.passValue(chrome.app.window.get("receiver_msp"), 'darkTheme', this.isDarkThemeEnabled(this.configEnabled)); - + this.apply(); } }; diff --git a/src/js/main.js b/src/js/main.js index 6b9f3ed4..90429fe9 100644 --- a/src/js/main.js +++ b/src/js/main.js @@ -595,6 +595,9 @@ function startProcess() { setDarkTheme(result.darkTheme); } }); + window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change", function() { + DarkTheme.autoSet(); + }); } function setDarkTheme(enabled) {