From 0482987bf15adc6731541b9db05626ffdf28ecae Mon Sep 17 00:00:00 2001 From: mofeng-git Date: Thu, 16 Jul 2026 21:02:23 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=AE=8C=E5=96=84=E6=8C=89=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E9=9A=90=E8=97=8F=E6=8E=A7=E5=88=B6=E5=8F=B0=E8=8F=9C?= =?UTF-8?q?=E5=8D=95=E9=80=89=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- web/src/components/ActionBar.vue | 33 +++++++++++++++++---- web/src/composables/useFeatureVisibility.ts | 3 +- web/src/i18n/en-US.ts | 1 + web/src/i18n/zh-CN.ts | 1 + web/src/views/ConsoleView.vue | 2 ++ web/src/views/SettingsView.vue | 8 +++++ 6 files changed, 41 insertions(+), 7 deletions(-) diff --git a/web/src/components/ActionBar.vue b/web/src/components/ActionBar.vue index 1e0e82a1..f95c2de5 100644 --- a/web/src/components/ActionBar.vue +++ b/web/src/components/ActionBar.vue @@ -58,6 +58,7 @@ const isCh9329Backend = computed(() => hidBackend.value.includes('ch9329')) const showMsd = computed(() => { return !!systemStore.msd?.available && !isCh9329Backend.value }) +const showAtx = computed(() => systemStore.atx?.available === true) const props = defineProps<{ mouseMode?: 'absolute' | 'relative' @@ -65,8 +66,10 @@ const props = defineProps<{ ttydRunning?: boolean showTerminal?: boolean showComputerUse?: boolean + showPasteText?: boolean }>() const showStats = computed(() => (props.videoMode ?? 'mjpeg') !== 'mjpeg') +const showPasteText = computed(() => props.showPasteText !== false) const emit = defineEmits<{ (e: 'toggleFullscreen'): void @@ -108,11 +111,13 @@ const openFromOverflow = (setter: () => void) => { } const openMobileAtx = () => openFromOverflow(() => { + if (!showAtx.value) return mobileAtxOpen.value = true mobileAtxOpenTime.value = Date.now() }) const openMobilePaste = () => openFromOverflow(() => { + if (!showPasteText.value) return mobilePasteOpen.value = true mobilePasteOpenTime.value = Date.now() }) @@ -192,11 +197,27 @@ watch(locale, () => { measureButtonWidths() }) +watch(showAtx, (visible) => { + if (!visible) { + atxOpen.value = false + mobileAtxOpen.value = false + } +}) + +watch(showPasteText, (visible) => { + if (!visible) { + pasteOpen.value = false + mobilePasteOpen.value = false + } +}) + const RIGHT_FIXED_PX = 120 const collapsibleItems = computed(() => { const items = ITEM_SPECS.slice(3).filter(item => { if (item.id === 'msd' && !showMsd.value) return false + if (item.id === 'atx' && !showAtx.value) return false + if (item.id === 'paste' && !showPasteText.value) return false if (item.id === 'stats' && !showStats.value) return false if (item.id === 'terminal' && props.showTerminal === false) return false return true @@ -294,7 +315,7 @@ const hasRightOverflow = computed(() => { -
+
-
+
+
+ + +