From 010ab9f314b66f783be26150d78b6873313c2dcc Mon Sep 17 00:00:00 2001 From: xiaoqidun Date: Mon, 19 Oct 2026 19:07:34 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E5=8E=9F=E7=94=9F=E6=A1=8C=E9=9D=A2):=20?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=B9=B6=E5=8F=91=E7=BC=93=E5=AD=98=E4=B8=8E?= =?UTF-8?q?=E5=8F=96=E6=B6=88=E9=87=8A=E6=94=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/webui/webui_native.go | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/internal/webui/webui_native.go b/internal/webui/webui_native.go index 925cd7d..a9479aa 100644 --- a/internal/webui/webui_native.go +++ b/internal/webui/webui_native.go @@ -214,8 +214,14 @@ func (e *NativeEngine) Call(ctx context.Context, name string, args []any, emit f defer func() { worker.Renderer.OutputContext = context.Background() e.renderMu.Lock() - e.currentSession.svgFonts = maps.Clone(worker.svgFonts) - e.renderIdle = append(e.renderIdle, worker) + if result != nil && result["ok"] == true && ctx.Err() == nil { + e.currentSession.svgFonts = maps.Clone(worker.svgFonts) + clear(worker.pageCache) + clear(worker.textCache) + worker.textOrder = nil + clear(worker.svgFonts) + e.renderIdle = append(e.renderIdle, worker) + } e.renderCount-- if e.renderCount == 0 { close(e.renderDone) @@ -391,6 +397,7 @@ func (e *NativeEngine) renderSession(ctx context.Context) (*Session, error) { defer e.renderMu.Unlock() if count := len(e.renderIdle); count > 0 { worker := e.renderIdle[count-1] + e.renderIdle[count-1] = nil e.renderIdle = e.renderIdle[:count-1] worker.Renderer.OutputContext = ctx return worker, nil