Skip to content

Commit c63fed4

Browse files
committed
Fix settings applying/saving bugs
1 parent ae3e727 commit c63fed4

2 files changed

Lines changed: 29 additions & 19 deletions

File tree

src/electron.js

Lines changed: 28 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -112,16 +112,22 @@ function readSettings() {
112112
processSettings()
113113
}
114114

115-
115+
let writeSettingsTimeout = false
116116
function writeSettings(newSettings = {}, processAfter = true) {
117117
settings = Object.assign(settings, newSettings)
118118

119-
// Save new settings
120-
try {
121-
fs.writeFile(settingsPath, JSON.stringify(settings), (e) => {if(e) debug.error(e)})
122-
} catch(e) {
123-
debug.error("Couldn't save settings.", settingsPath, e)
119+
if(!writeSettingsTimeout) {
120+
writeSettingsTimeout = setTimeout(() => {
121+
// Save new settings
122+
try {
123+
fs.writeFile(settingsPath, JSON.stringify(settings), (e) => {if(e) debug.error(e)})
124+
} catch(e) {
125+
debug.error("Couldn't save settings.", settingsPath, e)
126+
}
127+
writeSettingsTimeout = false
128+
}, 333)
124129
}
130+
125131
if (processAfter) processSettings();
126132
}
127133

@@ -132,6 +138,7 @@ function processSettings() {
132138
}
133139
updateStartupOption((settings.openAtLogin || false))
134140
applyOrder()
141+
applyRemaps()
135142
if (settings.killWhenIdle && mainWindow && mainWindow.isAlwaysOnTop() === false) {
136143
mainWindow.close()
137144
}
@@ -148,6 +155,20 @@ function applyOrder() {
148155
}
149156
}
150157

158+
function applyRemaps() {
159+
for (let monitor of monitors) {
160+
if(settings.remaps) {
161+
for(let remapName in settings.remaps) {
162+
if(remapName == monitor.name) {
163+
let remap = settings.remaps[remapName]
164+
monitor.min = remap.min
165+
monitor.max = remap.max
166+
}
167+
}
168+
}
169+
}
170+
}
171+
151172
function determineTheme(themeName) {
152173
theme = themeName.toLowerCase()
153174
if(theme === "dark" || theme === "light") return theme;
@@ -463,18 +484,7 @@ refreshNames = (callback = () => { debug.log("Done refreshing names") }) => {
463484
}
464485
}
465486
}
466-
// Apply remaps
467-
for (let monitor of monitors) {
468-
if(settings.remaps) {
469-
for(let remapName in settings.remaps) {
470-
if(remapName == monitor.name) {
471-
let remap = settings.remaps[remapName]
472-
monitor.min = remap.min
473-
monitor.max = remap.max
474-
}
475-
}
476-
}
477-
}
487+
applyRemaps()
478488
callback(out)
479489
} else {
480490
callback([])

src/settings-preload.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,9 +88,9 @@ ipc.on('theme-settings', (event, theme) => {
8888

8989
// Request startup data
9090
browser.webContents.once('dom-ready', () => {
91+
requestSettings()
9192
requestMonitors()
9293
requestAccent()
93-
requestSettings()
9494
})
9595

9696
window.updateBrightness = updateBrightness

0 commit comments

Comments
 (0)