diff --git a/app/settings.go b/app/settings.go index 291743febb..bd15223d39 100644 --- a/app/settings.go +++ b/app/settings.go @@ -2,6 +2,7 @@ package app import ( "encoding/json" + "io" "os" "path/filepath" "sync" @@ -83,7 +84,7 @@ func (s *settings) apply() { func (s *settings) load() { err := s.loadFromFile(s.schema.StoragePath()) - if err != nil { + if err != nil && err != io.EOF { // we can get an EOF in windows settings writes fyne.LogError("Settings load error:", err) } diff --git a/cmd/fyne_settings/settings/appearance.go b/cmd/fyne_settings/settings/appearance.go index 785fa30fe6..b5b6acf719 100644 --- a/cmd/fyne_settings/settings/appearance.go +++ b/cmd/fyne_settings/settings/appearance.go @@ -2,6 +2,7 @@ package settings import ( "encoding/json" + "io/ioutil" "os" "path/filepath" @@ -105,17 +106,10 @@ func (s *Settings) saveToFile(path string) error { return err } - file, err := os.Create(path) + data, err := json.Marshal(&s.fyneSettings) if err != nil { - if !os.IsExist(err) { - return err - } - file, err = os.Open(path) // #nosec - if err != nil { - return err - } + return err } - encode := json.NewEncoder(file) - return encode.Encode(&s.fyneSettings) + return ioutil.WriteFile(path, data, 0644) }