From 18c64ae22f83b3461e4b7f2a07ac98a5aada8e6f Mon Sep 17 00:00:00 2001 From: Andy Williams Date: Mon, 29 Aug 2022 19:32:00 +0100 Subject: [PATCH] Fire change so we save when a preference is removed Fixes #3229 --- internal/preferences.go | 5 +++-- internal/preferences_test.go | 4 ++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/internal/preferences.go b/internal/preferences.go index c6cd0bbdae..2ce69129dc 100644 --- a/internal/preferences.go +++ b/internal/preferences.go @@ -73,9 +73,10 @@ func (p *InMemoryPreferences) get(key string) (interface{}, bool) { func (p *InMemoryPreferences) remove(key string) { p.lock.Lock() - defer p.lock.Unlock() - delete(p.values, key) + p.lock.Unlock() + + p.fireChange() } func (p *InMemoryPreferences) fireChange() { diff --git a/internal/preferences_test.go b/internal/preferences_test.go index a24960c63c..742ba34df9 100644 --- a/internal/preferences_test.go +++ b/internal/preferences_test.go @@ -141,7 +141,11 @@ func TestInMemoryPreferences_OnChange(t *testing.T) { p.SetString("dummy", "another") time.Sleep(time.Millisecond * 100) + assert.True(t, called) + called = false + p.RemoveValue("dummy") + time.Sleep(time.Millisecond * 100) assert.True(t, called) }