From b59cf7e9092c484a2ce4bb47a3ef4b82c71dd71d Mon Sep 17 00:00:00 2001 From: Stewart Allen Date: Sat, 9 May 2020 18:19:02 -0400 Subject: [PATCH] add event signaling a page reload is imminent --- js/kiri-init.js | 12 ++++++++---- js/kiri.js | 9 ++++++++- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/js/kiri-init.js b/js/kiri-init.js index 355890d5..61636788 100644 --- a/js/kiri-init.js +++ b/js/kiri-init.js @@ -83,6 +83,7 @@ var gs_kiri_init = exports; let control = settings().controller; let isCompact = control.compact; let isDark = control.dark; + let isReload = false; control.expert = UI.expert.checked; control.showOrigin = UI.showOrigin.checked; control.autoLayout = UI.autoLayout.checked; @@ -98,13 +99,16 @@ var gs_kiri_init = exports; // if compact mode changed, reload UI if (isCompact !== control.compact) { UC.setDefaults(isCompact); - LOC.reload(); + isReload = true; } // if dark mode changed, reload UI if (isDark !== control.dark) { - LOC.reload(); + isReload = true; } API.mode.set_expert(control.expert); + if (isReload) { + API.space.reload(); + } } function onLayerToggle() { @@ -1511,11 +1515,11 @@ var gs_kiri_init = exports; lp.appendChild(dlp); elp.onclick = function() { SDB.setItem('kiri-lang', 'en-us'); - LOC.reload(); + API.space.reload(); }; dlp.onclick = function() { SDB.setItem('kiri-lang', 'da-dk'); - LOC.reload(); + API.space.reload(); }; SPACE.addEventHandlers(self, [ diff --git a/js/kiri.js b/js/kiri.js index df2f13e1..759b643c 100644 --- a/js/kiri.js +++ b/js/kiri.js @@ -247,6 +247,7 @@ self.kiri.copyright = exports.COPYRIGHT; import: function() { UI.import.style.display = '' } }, space: { + reload: reload, restore: restoreWorkspace, clear: clearWorkspace, save: saveWorkspace, @@ -269,6 +270,12 @@ self.kiri.copyright = exports.COPYRIGHT; work: KIRI.work }; + function reload() { + API.event.emit('reload'); + // allow time for async saves to complete + setTimeout(() => { LOC.reload() }, 50); + } + /** ****************************************************************** * Stats accumulator ******************************************************************* */ @@ -1441,7 +1448,7 @@ self.kiri.copyright = exports.COPYRIGHT; } settings = CONF.normalize(data.settings); API.conf.save(); - LOC.reload(); + API.space.reload(); } function settingsExport() {