mirror of
https://github.com/atom/atom.git
synced 2026-02-13 08:04:56 -05:00
Avoid sending async updates on config update
In
7a5d727e22
the 'set-user-settings' callback was changed so that it nolonger
returned the promise created by `ConfigFile.update()`. This meant that
the logic in
[`ApplicateDelegate.onDidChangeUserSetting()`](https://github.com/atom/atom/blob/5f0231b/src/application-delegate.js#L193-L206) which uses
`.pendingSettingUpdateCount` to avoid triggering in response to calls to
ApplicationDelegate.setUserSettings` was no longer effective.
I noticed this when updating settings via the setting view. If you type
at just the right (wrong?) cadence, you'll notice that your input can
get updated with stale values.
Something like this:
```
You type "a" "b" "c"
config.set "a" "ab" "ac"
config.observe "a" "ab" "ac"
Input value "a" "ab" "a" "ac" "ab" "ac"
```
It's possible that is the same as https://github.com/atom/settings-view/issues/1062
After this change typing in settings input seems to behave as expected.
This commit is contained in:
@@ -576,7 +576,7 @@ class AtomApplication extends EventEmitter {
|
||||
|
||||
this.disposable.add(ipcHelpers.respondTo('set-user-settings', (window, settings, filePath) => {
|
||||
if (!this.quitting) {
|
||||
ConfigFile.at(filePath || this.configFilePath).update(JSON.parse(settings))
|
||||
return ConfigFile.at(filePath || this.configFilePath).update(JSON.parse(settings))
|
||||
}
|
||||
}))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user