优化调整、BT下载(有bug)
This commit is contained in:
@@ -444,6 +444,23 @@ function scheduleMeasure() {
|
||||
}, 50)
|
||||
}
|
||||
|
||||
/** 内容尺寸监视器:内核未启动时显示占位符(如 '--' 很短),数据就绪后实际值更长,
|
||||
* 导致 osd-bar 变宽。仅靠配置变化触发测量不够——需监听 osd-bar 尺寸变化,
|
||||
* 任何内容变宽/变高(数据加载、配置变更)都自动重测上报,驱动主窗口放大。 */
|
||||
let resizeObserver: ResizeObserver | null = null
|
||||
function observeBarSize() {
|
||||
resizeObserver?.disconnect()
|
||||
resizeObserver = null
|
||||
const root = osdRootEl.value
|
||||
const bar = root?.querySelector<HTMLElement>('.osd-bar')
|
||||
if (!bar) return
|
||||
resizeObserver = new ResizeObserver(() => scheduleMeasure())
|
||||
resizeObserver.observe(bar)
|
||||
}
|
||||
|
||||
// 根容器就绪后(config 到达、v-if 挂载)开始监视 osd-bar 尺寸变化
|
||||
watch(osdRootEl, () => { void nextTick(observeBarSize) })
|
||||
|
||||
// ===== 应用鼠标穿透 =====
|
||||
// 同时调用 Tauri setIgnoreCursorEvents(处理 webview2 子窗口)和 Rust WS_EX_TRANSPARENT(处理原生窗口)
|
||||
// 仅靠原生 WS_EX_TRANSPARENT 不足:Tauri 窗口包含 webview2 子窗口,需两者都设置才能完全穿透
|
||||
@@ -537,6 +554,9 @@ onUnmounted(() => {
|
||||
unlistenFns.forEach(fn => fn())
|
||||
// 停止监视线程
|
||||
invoke('osd_stop_watch').catch(() => {})
|
||||
// 断开内容尺寸监视器
|
||||
resizeObserver?.disconnect()
|
||||
resizeObserver = null
|
||||
})
|
||||
</script>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user