From 5fbe9789faf05ce99bbff6ec4cd0b905519acbd0 Mon Sep 17 00:00:00 2001
From: Ariver <shanghai3168@gmail.com>
Date: Fri, 03 Jul 2026 05:18:07 +0800
Subject: [PATCH] Freeze R221 2.2.2 source baseline
---
C1.source/privatevoice.src/internal/overlay/overlay_windows.go | 21 ++++++++++++++-------
1 files changed, 14 insertions(+), 7 deletions(-)
diff --git a/C1.source/privatevoice.src/internal/overlay/overlay_windows.go b/C1.source/privatevoice.src/internal/overlay/overlay_windows.go
index b19d38e..3cbaa3f 100755
--- a/C1.source/privatevoice.src/internal/overlay/overlay_windows.go
+++ b/C1.source/privatevoice.src/internal/overlay/overlay_windows.go
@@ -5,6 +5,7 @@
import (
"math"
"runtime"
+ "sync"
"syscall"
"time"
"unsafe"
@@ -257,12 +258,13 @@
}
type winOverlay struct {
- showCh chan bool
- statusCh chan statusCmd
- volCh chan float64
- posCh chan [2]int
- closeCh chan struct{}
- done chan struct{}
+ showCh chan bool
+ statusCh chan statusCmd
+ volCh chan float64
+ posCh chan [2]int
+ closeCh chan struct{}
+ done chan struct{}
+ closeOnce sync.Once
barHeights [nBars]float64
animTime float64
@@ -307,7 +309,12 @@
func (o *winOverlay) GetPosition() (int, int) { return o.posX, o.posY }
func (o *winOverlay) Size() (int, int) { return capW, capH }
func (o *winOverlay) OnDragged(fn func(x, y int)) { o.dragCb = fn }
-func (o *winOverlay) Close() { close(o.closeCh); <-o.done }
+func (o *winOverlay) Close() {
+ o.closeOnce.Do(func() {
+ close(o.closeCh)
+ })
+ <-o.done
+}
func trySend(ch chan bool, v bool) {
select {
--
Gitblit v1.9.3