diff --git a/app/appearance/langs/en_US.json b/app/appearance/langs/en_US.json index 409d4e93a..aa82d6092 100644 --- a/app/appearance/langs/en_US.json +++ b/app/appearance/langs/en_US.json @@ -614,8 +614,7 @@ "superBlock": "Super block", "embedBlock": "Embed block", "expand": "Expand", - "showDock": "Show Dock", - "hideDock": "Hide Dock", + "toggleDock": "Show/Hide Dock", "notebookName": "Please enter a notebook name", "moveToLeftTop": "Move to the Left Top", "moveToLeftBottom": "Move to the Left Bottom", diff --git a/app/appearance/langs/es_ES.json b/app/appearance/langs/es_ES.json index ac7f9834f..41914465b 100644 --- a/app/appearance/langs/es_ES.json +++ b/app/appearance/langs/es_ES.json @@ -614,8 +614,7 @@ "superBlock": "Superbloque", "embedBlock": "Bloque incrustado", "expand": "Expandir", - "showDock": "Mostrar Dock", - "hideDock": "Ocultar Dock", + "toggleDock": "Mostrar/ocultar Dock", "notebookName": "Por favor, introduzca un nombre de cuaderno", "moveToLeftTop": "Muéve a la parte superior izquierda", "moveToLeftBottom": "Muéve a la parte inferior izquierda", diff --git a/app/appearance/langs/fr_FR.json b/app/appearance/langs/fr_FR.json index 189f44090..1fca053b8 100644 --- a/app/appearance/langs/fr_FR.json +++ b/app/appearance/langs/fr_FR.json @@ -614,8 +614,7 @@ "superBlock": "Superblock", "embedBlock": "Bloc intégré", "expand": "Élargir", - "showDock": "Montrer le Dock", - "hideDock": "Cacher le Dock", + "toggleDock": "Afficher/masquer le Dock", "notebookName": "Veuillez entrer un nom de carnet de notes", "moveToLeftTop": "Déplacer vers la Gauche à Haut", "moveToLeftBottom": "Déplacer vers la Gauche à Bas", diff --git a/app/appearance/langs/zh_CHT.json b/app/appearance/langs/zh_CHT.json index 5f42c2890..a909d31c9 100644 --- a/app/appearance/langs/zh_CHT.json +++ b/app/appearance/langs/zh_CHT.json @@ -614,8 +614,7 @@ "superBlock": "超級塊", "embedBlock": "嵌入塊", "expand": "展開", - "showDock": "顯示停靠欄", - "hideDock": "隱藏停靠欄", + "toggleDock": "顯示/隱藏停靠欄", "notebookName": "請輸入筆記本名稱", "moveToLeftTop": "移動到左側上方", "moveToLeftBottom": "移動到左側下方", diff --git a/app/appearance/langs/zh_CN.json b/app/appearance/langs/zh_CN.json index bc71c68b3..de48ad812 100644 --- a/app/appearance/langs/zh_CN.json +++ b/app/appearance/langs/zh_CN.json @@ -614,8 +614,7 @@ "superBlock": "超级块", "embedBlock": "嵌入块", "expand": "展开", - "showDock": "显示停靠栏", - "hideDock": "隐藏停靠栏", + "toggleDock": "显示/隐藏停靠栏", "notebookName": "请输入笔记本名称", "moveToLeftTop": "移动到左侧上方", "moveToLeftBottom": "移动到左侧下方", diff --git a/app/src/boot/globalShortcut.ts b/app/src/boot/globalShortcut.ts index 1434e565a..2954ca12d 100644 --- a/app/src/boot/globalShortcut.ts +++ b/app/src/boot/globalShortcut.ts @@ -55,6 +55,7 @@ import {setPadding} from "../protyle/ui/initUI"; import {openRecentDocs} from "../business/openRecentDocs"; import {App} from "../index"; import {commandPanel} from "../plugin/commandPanel"; +import {toggleDockBar} from "../layout/dock/util"; const getRightBlock = (element: HTMLElement, x: number, y: number) => { let index = 1; @@ -635,6 +636,11 @@ export const globalShortcut = (app: App) => { event.preventDefault(); return; } + if (!isTabWindow && matchHotKey(window.siyuan.config.keymap.general.toggleDock.custom, event)) { + toggleDockBar(document.querySelector("#barDock use")); + event.preventDefault(); + return; + } if (!isTabWindow && !window.siyuan.config.readonly && matchHotKey(window.siyuan.config.keymap.general.config.custom, event)) { openSetting(app); event.preventDefault(); diff --git a/app/src/constants.ts b/app/src/constants.ts index a018ce078..1aa9378f6 100644 --- a/app/src/constants.ts +++ b/app/src/constants.ts @@ -242,6 +242,7 @@ export abstract class Constants { recentDocs: {default: "⌘E", custom: "⌘E"}, move: {default: "", custom: ""}, selectOpen1: {default: "", custom: ""}, + toggleDock: {default: "", custom: ""}, }, editor: { general: { diff --git a/app/src/layout/dock/util.ts b/app/src/layout/dock/util.ts index 16443d05f..25eb0d0a6 100644 --- a/app/src/layout/dock/util.ts +++ b/app/src/layout/dock/util.ts @@ -2,7 +2,7 @@ import {getAllModels} from "../getAll"; import {Tab} from "../Tab"; import {Graph} from "./Graph"; import {Outline} from "./Outline"; -import {switchWnd} from "../util"; +import {resizeTabs, switchWnd} from "../util"; import {Backlink} from "./Backlink"; export const openBacklink = (protyle: IProtyle) => { @@ -101,3 +101,21 @@ export const resetFloatDockSize = () => { window.siyuan.layout.bottomDock.showDock(true); } }; + +export const toggleDockBar = (useElement:Element)=> { + const dockIsShow = useElement.getAttribute("xlink:href") === "#iconHideDock"; + if (dockIsShow) { + useElement.setAttribute("xlink:href", "#iconDock"); + } else { + useElement.setAttribute("xlink:href", "#iconHideDock"); + } + document.querySelectorAll(".dock").forEach(item => { + if (dockIsShow) { + item.classList.add("fn__none"); + } else if (item.querySelectorAll(".dock__item").length > 1) { + item.classList.remove("fn__none"); + } + }); + resizeTabs(); + resetFloatDockSize(); +} diff --git a/app/src/layout/status.ts b/app/src/layout/status.ts index 433593701..df03ea8fb 100644 --- a/app/src/layout/status.ts +++ b/app/src/layout/status.ts @@ -9,13 +9,14 @@ import {getCurrentWindow} from "@electron/remote"; /// #endif import {MenuItem} from "../menus/Menu"; import {Constants} from "../constants"; -import {resetFloatDockSize} from "./dock/util"; +import {toggleDockBar} from "./dock/util"; +import {updateHotkeyTip} from "../protyle/util/compatibility"; export const initStatus = (isWindow = false) => { /// #if !MOBILE let barDockHTML = ""; if (!isWindow) { - barDockHTML = `
+ barDockHTML = `
@@ -33,24 +34,7 @@ export const initStatus = (isWindow = false) => { let target = event.target as HTMLElement; while (target.id !== "status") { if (target.id === "barDock") { - const useElement = target.firstElementChild.firstElementChild; - const dockIsShow = useElement.getAttribute("xlink:href") === "#iconHideDock"; - if (dockIsShow) { - useElement.setAttribute("xlink:href", "#iconDock"); - target.setAttribute("aria-label", window.siyuan.languages.showDock); - } else { - useElement.setAttribute("xlink:href", "#iconHideDock"); - target.setAttribute("aria-label", window.siyuan.languages.hideDock); - } - document.querySelectorAll(".dock").forEach(item => { - if (dockIsShow) { - item.classList.add("fn__none"); - } else if (item.querySelectorAll(".dock__item").length > 1) { - item.classList.remove("fn__none"); - } - }); - resizeTabs(); - resetFloatDockSize(); + toggleDockBar(target.firstElementChild.firstElementChild); event.stopPropagation(); break; } else if (target.classList.contains("status__backgroundtask")) {