From 9a87a7e28f696475e67a6d78d0d5b3f9657a9712 Mon Sep 17 00:00:00 2001 From: Stu Leak Date: Wed, 7 Jan 2026 02:20:53 -0500 Subject: [PATCH] Fix UI thread update in unified player adapter --- internal/player/unified_player_adapter.go | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/internal/player/unified_player_adapter.go b/internal/player/unified_player_adapter.go index 07d7f16..d1ac4c7 100644 --- a/internal/player/unified_player_adapter.go +++ b/internal/player/unified_player_adapter.go @@ -331,15 +331,16 @@ func (p *UnifiedPlayerAdapter) startFrameDisplayLoop() { return case <-ticker.C: p.mu.Lock() - if !p.paused && p.player != nil { - // Get frame from UnifiedPlayer - frame, err := p.player.GetFrameImage() - if err == nil && frame != nil { - // Update the Fyne canvas image - p.img.Image = frame - p.img.Refresh() + if !p.paused && p.player != nil { + // Get frame from UnifiedPlayer + frame, err := p.player.GetFrameImage() + if err == nil && frame != nil { + fyne.CurrentApp().Driver().DoFromGoroutine(func() { + p.img.Image = frame + p.img.Refresh() + }, false) + } } - } p.mu.Unlock() } }