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/frontend/src/components/settings/LanguagePage.svelte |   16 +++++++++++++---
 1 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/C1.source/privatevoice.src/frontend/src/components/settings/LanguagePage.svelte b/C1.source/privatevoice.src/frontend/src/components/settings/LanguagePage.svelte
index f989836..91efb8d 100644
--- a/C1.source/privatevoice.src/frontend/src/components/settings/LanguagePage.svelte
+++ b/C1.source/privatevoice.src/frontend/src/components/settings/LanguagePage.svelte
@@ -1,4 +1,5 @@
 <script lang="ts">
+  import { onDestroy } from 'svelte'
   import { Call, Events } from '@wailsio/runtime'
   import { t, setLocale } from '../../lib/i18n'
   import { languageMode, languageID, effectiveLanguageID, uiLocale } from '../../lib/stores/config'
@@ -42,7 +43,7 @@
   const unsub2 = languageID.subscribe(v => { languageIDVal = v })
   const unsub3 = effectiveLanguageID.subscribe(v => { effectiveLanguageIDVal = v })
 
-  Events.On('model:download-progress', (ev: any) => {
+  const offDownloadProgress = Events.On('model:download-progress', (ev: any) => {
     const data = ev?.data
     if (data?.modelID && typeof data.percent === 'number') {
       modelBusyID = data.modelID
@@ -54,7 +55,7 @@
     }
   })
 
-  Events.On('model:download-cancelled', (ev: any) => {
+  const offDownloadCancelled = Events.On('model:download-cancelled', (ev: any) => {
     const data = ev?.data
     if (data?.modelID) {
       modelBusyID = data.modelID
@@ -63,7 +64,7 @@
     }
   })
 
-  Events.On('model:download-finished', (ev: any) => {
+  const offDownloadFinished = Events.On('model:download-finished', (ev: any) => {
     const data = ev?.data
     if (!data?.modelID || data.modelID === modelBusyID) {
       clearModelBusy()
@@ -71,6 +72,15 @@
     }
   })
 
+  onDestroy(() => {
+    unsub1()
+    unsub2()
+    unsub3()
+    offDownloadProgress()
+    offDownloadCancelled()
+    offDownloadFinished()
+  })
+
   async function loadSettings() {
     try {
       const lang: any = await Call.ByName('voicesnap/services.ConfigService.GetLanguageSettings')

--
Gitblit v1.9.3