From 289337f0166045c5aa2b629658c5bc1e9cdaa936 Mon Sep 17 00:00:00 2001 From: messypy Date: Mon, 27 Jul 2026 23:36:06 +0900 Subject: [PATCH] Keep Win32 GUI on one OS thread --- cmd/vrc_osc_gui/window_windows.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/cmd/vrc_osc_gui/window_windows.go b/cmd/vrc_osc_gui/window_windows.go index a6abbbd..5e1cb4f 100644 --- a/cmd/vrc_osc_gui/window_windows.go +++ b/cmd/vrc_osc_gui/window_windows.go @@ -9,6 +9,7 @@ import ( "os" "path/filepath" "regexp" + "runtime" "runtime/debug" "sort" "strconv" @@ -328,6 +329,9 @@ func guiLog(text string) { } func runNativeGUI(initialTab string) error { + runtime.LockOSThread() + defer runtime.UnlockOSThread() + user32 := syscall.NewLazyDLL("user32.dll") kernel32 := syscall.NewLazyDLL("kernel32.dll") gdi32 := syscall.NewLazyDLL("gdi32.dll") @@ -990,6 +994,10 @@ func refreshGUI(setWindowText *syscall.LazyProc, app *guiApp, reloadData bool) { if app == nil { return } + if app.activeTab == "history" && !reloadData { + syncPaneVisibility(app) + return + } start := time.Now() defer func() { if d := time.Since(start); d > 100*time.Millisecond {