Skip to content

Commit d4bbfc5

Browse files
Jacalzandydotxyz
authored andcommitted
Only change variant when color scheme changes
1 parent c93314d commit d4bbfc5

File tree

2 files changed

+11
-3
lines changed

2 files changed

+11
-3
lines changed

‎app/app_xdg.go

+4-3
Original file line numberDiff line numberDiff line change
@@ -122,14 +122,15 @@ func rootConfigDir() string {
122122
func watchTheme(s *settings) {
123123
go func() {
124124
// Theme lookup hangs on some desktops. Update theme variant cache from within goroutine.
125-
internalapp.CurrentVariant.Store(uint64(findFreedesktopColorScheme()))
126-
s.setupTheme()
125+
themeVariant := findFreedesktopColorScheme()
126+
internalapp.CurrentVariant.Store(uint64(themeVariant))
127+
s.applyVariant(themeVariant)
127128

128129
portalSettings.OnSignalSettingChanged(func(changed portalSettings.Changed) {
129130
if changed.Namespace == "org.freedesktop.appearance" && changed.Key == "color-scheme" {
130131
themeVariant := colorSchemeToThemeVariant(appearance.ColorScheme(changed.Value.(uint32)))
131132
internalapp.CurrentVariant.Store(uint64(themeVariant))
132-
s.setupTheme()
133+
s.applyVariant(themeVariant)
133134
}
134135
})
135136
}()

‎app/settings.go

+7
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,13 @@ func (s *settings) applyTheme(theme fyne.Theme, variant fyne.ThemeVariant) {
9797
s.apply()
9898
}
9999

100+
func (s *settings) applyVariant(variant fyne.ThemeVariant) {
101+
s.propertyLock.Lock()
102+
defer s.propertyLock.Unlock()
103+
s.variant = variant
104+
s.apply()
105+
}
106+
100107
func (s *settings) Scale() float32 {
101108
s.propertyLock.RLock()
102109
defer s.propertyLock.RUnlock()

0 commit comments

Comments
 (0)