Add -reload-theme CLI flag to re-apply the current theme file (#860)

* Add -reload-theme CLI flag to re-apply theme via IPC

Sends a reload-theme IPC message to a running instance, causing it to
call fyne.CurrentApp().Settings().SetTheme(m.theme). Follows the same
callback pattern as -show (OnReactivate) and quit (OnExit).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* actually re-read theme file

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Drew Weymouth
2026-02-17 16:56:51 -08:00
committed by GitHub
co-authored by Claude Sonnet 4.6
parent 497c61e724
commit e21908cd24
8 changed files with 39 additions and 9 deletions
+10 -8
View File
@@ -41,16 +41,17 @@ type ServerManager interface {
}
type serverImpl struct {
server *http.Server
pbHandler PlaybackHandler
rateFn func(int)
sm ServerManager
showFn func()
quitFn func()
server *http.Server
pbHandler PlaybackHandler
rateFn func(int)
sm ServerManager
showFn func()
quitFn func()
reloadThemeFn func()
}
func NewServer(pbHandler PlaybackHandler, rateFn func(int), sm ServerManager, showFn, quitFn func()) IPCServer {
s := &serverImpl{pbHandler: pbHandler, rateFn: rateFn, sm: sm, showFn: showFn, quitFn: quitFn}
func NewServer(pbHandler PlaybackHandler, rateFn func(int), sm ServerManager, showFn, quitFn, reloadThemeFn func()) IPCServer {
s := &serverImpl{pbHandler: pbHandler, rateFn: rateFn, sm: sm, showFn: showFn, quitFn: quitFn, reloadThemeFn: reloadThemeFn}
s.server = &http.Server{
Handler: s.createHandler(),
}
@@ -77,6 +78,7 @@ func (s *serverImpl) createHandler() http.Handler {
m.HandleFunc(ShowPath, s.makeSimpleEndpointHandler(func() {
s.showFn()
}))
m.HandleFunc(ReloadThemePath, s.makeSimpleEndpointHandler(s.reloadThemeFn))
m.HandleFunc(QuitPath, s.makeSimpleEndpointHandler(func() {
s.quitFn()
}))