mirror of
https://github.com/siyuan-note/siyuan.git
synced 2025-05-19 02:21:38 +08:00
This commit is contained in:
parent
22dad0a3b7
commit
fa2b7c369f
@ -294,7 +294,10 @@ export class Wnd {
|
||||
if (item.headElement && item.headElement.classList.contains("fn__none")) {
|
||||
// https://github.com/siyuan-note/siyuan/issues/267
|
||||
} else {
|
||||
item.headElement?.classList.add("item--focus");
|
||||
if (item.headElement) {
|
||||
item.headElement.classList.add("item--focus");
|
||||
item.headElement.setAttribute("data-activetime", (new Date()).getTime().toString());
|
||||
}
|
||||
item.panelElement.classList.remove("fn__none");
|
||||
}
|
||||
currentTab = item;
|
||||
@ -310,7 +313,7 @@ export class Wnd {
|
||||
if (currentTab && currentTab.model instanceof Editor) {
|
||||
const keepCursorId = currentTab.headElement.getAttribute("keep-cursor");
|
||||
if (keepCursorId) {
|
||||
// 在新页签中打开,但不跳转到新页签,单切换到新页签时需调整滚动
|
||||
// 在新页签中打开,但不跳转到新页签,但切换到新页签时需调整滚动
|
||||
let nodeElement: HTMLElement;
|
||||
Array.from(currentTab.model.editor.protyle.wysiwyg.element.querySelectorAll(`[data-node-id="${keepCursorId}"]`)).find((item: HTMLElement) => {
|
||||
if (!hasClosestByAttribute(item, "data-type", "NodeBlockQueryEmbed", true)) {
|
||||
@ -405,7 +408,7 @@ export class Wnd {
|
||||
event.preventDefault();
|
||||
});
|
||||
|
||||
tab.headElement.setAttribute("data-opentime", (new Date()).getTime().toString());
|
||||
tab.headElement.setAttribute("data-activetime", (new Date()).getTime().toString());
|
||||
}
|
||||
const containerElement = this.element.querySelector(".layout-tab-container");
|
||||
if (!containerElement.querySelector(".fn__flex-1")) {
|
||||
@ -433,10 +436,10 @@ export class Wnd {
|
||||
return;
|
||||
}
|
||||
if (!openTime) {
|
||||
openTime = item.headElement.getAttribute("data-opentime");
|
||||
openTime = item.headElement.getAttribute("data-activetime");
|
||||
removeId = this.children[index].id;
|
||||
} else if (item.headElement.getAttribute("data-opentime") < openTime) {
|
||||
openTime = item.headElement.getAttribute("data-opentime");
|
||||
} else if (item.headElement.getAttribute("data-activetime") < openTime) {
|
||||
openTime = item.headElement.getAttribute("data-activetime");
|
||||
removeId = this.children[index].id;
|
||||
}
|
||||
});
|
||||
|
@ -1,4 +1,4 @@
|
||||
import {isCtrl, isMac, writeText} from "../protyle/util/compatibility";
|
||||
import {isCtrl, isMac, updateHotkeyTip, writeText} from "../protyle/util/compatibility";
|
||||
import {matchHotKey} from "../protyle/util/hotKey";
|
||||
import {openSearch} from "../search/spread";
|
||||
import {
|
||||
@ -257,7 +257,11 @@ export const globalShortcut = () => {
|
||||
let dockHtml = ''
|
||||
let tabHtml = ''
|
||||
getAllDocks().forEach(item => {
|
||||
dockHtml += `<li data-type="${item.type}" class="b3-list-item"><svg class="b3-list-item__graphic"><use xlink:href="#${item.icon}"></use></svg><span class="b3-list-item__text">${window.siyuan.languages[item.hotkeyLangId]}</span></li>`
|
||||
dockHtml += `<li data-type="${item.type}" class="b3-list-item">
|
||||
<svg class="b3-list-item__graphic"><use xlink:href="#${item.icon}"></use></svg>
|
||||
<span class="b3-list-item__text">${window.siyuan.languages[item.hotkeyLangId]}</span>
|
||||
<span class="b3-list-item__meta">${updateHotkeyTip(window.siyuan.config.keymap.general[item.hotkeyLangId].custom)}</span>
|
||||
</li>`
|
||||
})
|
||||
let currentTabElement = document.querySelector(".layout__wnd--active .layout-tab-bar > .item--focus")
|
||||
if (!currentTabElement) {
|
||||
@ -265,13 +269,15 @@ export const globalShortcut = () => {
|
||||
}
|
||||
if (currentTabElement) {
|
||||
const currentId = currentTabElement.getAttribute("data-id")
|
||||
getAllTabs().forEach(item => {
|
||||
getAllTabs().sort((itemA, itemB) => {
|
||||
return itemA.headElement.getAttribute("data-activetime") > itemB.headElement.getAttribute("data-activetime") ? -1 : 1
|
||||
}).forEach(item => {
|
||||
let icon = `<svg class="b3-list-item__graphic"><use xlink:href="#${item.icon}"></use></svg>`
|
||||
if (item.model instanceof Editor) {
|
||||
icon = `<span class="b3-list-item__graphic">${unicode2Emoji(item.docIcon || Constants.SIYUAN_IMAGE_FILE)}</span>`
|
||||
}
|
||||
tabHtml += `<li data-id="${item.id}" class="b3-list-item${currentId === item.id ? " b3-list-item--focus" : ""}"${currentId === item.id ? ' data-original="true"' : ""}>${icon}<span class="b3-list-item__text">${item.title}</span></li>`
|
||||
})
|
||||
});
|
||||
}
|
||||
switchDialog = new Dialog({
|
||||
content: `<div class="fn__flex-column b3-dialog--switch">
|
||||
@ -283,7 +289,7 @@ export const globalShortcut = () => {
|
||||
<div class="fn__hr"></div>
|
||||
</div>`
|
||||
});
|
||||
switchDialog.element.addEventListener("contextmenu", (event) => {
|
||||
switchDialog.element.addEventListener(isMac() ? "contextmenu" : "click", (event) => {
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
let target = event.target as HTMLElement;
|
||||
|
Loading…
Reference in New Issue
Block a user