mirror of
https://github.com/siyuan-note/siyuan.git
synced 2026-02-25 00:14:07 +01:00
This commit is contained in:
parent
7604a0a930
commit
f687828a6b
14 changed files with 50 additions and 32 deletions
|
|
@ -80,13 +80,13 @@ export class BlockPanel {
|
|||
const iconsElement = hasClosestByClassName(target, "block__icons");
|
||||
if (iconsElement) {
|
||||
const pingElement = iconsElement.querySelector('[data-type="pin"]');
|
||||
if (pingElement.classList.contains("block__icon--active")) {
|
||||
pingElement.classList.remove("block__icon--active");
|
||||
if (this.element.getAttribute("data-pin") === "true") {
|
||||
pingElement.setAttribute("aria-label", window.siyuan.languages.pin);
|
||||
pingElement.querySelector("use").setAttribute("xlink:href", "#iconPin");
|
||||
this.element.setAttribute("data-pin", "false");
|
||||
} else {
|
||||
pingElement.classList.add("block__icon--active");
|
||||
pingElement.setAttribute("aria-label", window.siyuan.languages.unpin);
|
||||
pingElement.querySelector("use").setAttribute("xlink:href", "#iconUnpin");
|
||||
this.element.setAttribute("data-pin", "true");
|
||||
}
|
||||
event.preventDefault();
|
||||
|
|
@ -105,13 +105,13 @@ export class BlockPanel {
|
|||
if (type === "close") {
|
||||
this.destroy();
|
||||
} else if (type === "pin") {
|
||||
if (target.classList.contains("block__icon--active")) {
|
||||
target.classList.remove("block__icon--active");
|
||||
if (this.element.getAttribute("data-pin") === "true") {
|
||||
target.setAttribute("aria-label", window.siyuan.languages.pin);
|
||||
target.querySelector("use").setAttribute("xlink:href", "#iconPin");
|
||||
this.element.setAttribute("data-pin", "false");
|
||||
} else {
|
||||
target.classList.add("block__icon--active");
|
||||
target.setAttribute("aria-label", window.siyuan.languages.unpin);
|
||||
target.querySelector("use").setAttribute("xlink:href", "#iconUnpin");
|
||||
this.element.setAttribute("data-pin", "true");
|
||||
}
|
||||
} else if (type === "open") {
|
||||
|
|
@ -134,8 +134,8 @@ export class BlockPanel {
|
|||
});
|
||||
}
|
||||
const pinElement = this.element.firstElementChild.querySelector('[data-type="pin"]');
|
||||
pinElement.classList.add("block__icon--active");
|
||||
pinElement.setAttribute("aria-label", window.siyuan.languages.unpin);
|
||||
pinElement.querySelector("use").setAttribute("xlink:href", "#iconUnpin");
|
||||
this.element.setAttribute("data-pin", "true");
|
||||
});
|
||||
/// #endif
|
||||
|
|
|
|||
|
|
@ -445,11 +445,12 @@ ${response.data.replace("%pages", "<span class=totalPages></span>").replace("%pa
|
|||
</div></div>`);
|
||||
const pinElement = document.getElementById("pinWindow");
|
||||
pinElement.addEventListener("click", () => {
|
||||
pinElement.classList.toggle("toolbar__item--active");
|
||||
if (pinElement.classList.contains("toolbar__item--active")) {
|
||||
if (pinElement.getAttribute("aria-label") === window.siyuan.languages.pin) {
|
||||
pinElement.querySelector("use").setAttribute("xlink:href", "#iconUnpin");
|
||||
pinElement.setAttribute("aria-label", window.siyuan.languages.unpin);
|
||||
ipcRenderer.send(Constants.SIYUAN_CMD, "setAlwaysOnTopTrue");
|
||||
} else {
|
||||
pinElement.querySelector("use").setAttribute("xlink:href", "#iconPin");
|
||||
pinElement.setAttribute("aria-label", window.siyuan.languages.pin);
|
||||
ipcRenderer.send(Constants.SIYUAN_CMD, "setAlwaysOnTopFalse");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -44,7 +44,9 @@ export const moveResize = (element: HTMLElement, afterCB?: (type: string) => voi
|
|||
|
||||
documentSelf.ondragstart = () => false;
|
||||
|
||||
let hasMove = false;
|
||||
documentSelf.onmousemove = (moveEvent: MouseEvent) => {
|
||||
hasMove = true;
|
||||
if (!element) {
|
||||
return;
|
||||
}
|
||||
|
|
@ -129,7 +131,7 @@ export const moveResize = (element: HTMLElement, afterCB?: (type: string) => voi
|
|||
documentSelf.ondragstart = null;
|
||||
documentSelf.onselectstart = null;
|
||||
documentSelf.onselect = null;
|
||||
if (afterCB) {
|
||||
if (hasMove && afterCB) {
|
||||
afterCB(type);
|
||||
}
|
||||
};
|
||||
|
|
|
|||
|
|
@ -87,7 +87,7 @@ export class Dock {
|
|||
}
|
||||
if (!showDock) {
|
||||
this.element.firstElementChild.innerHTML = `<span class="dock__item dock__item--pin b3-tooltips b3-tooltips__${this.getClassDirect(0)}" aria-label="${this.pin ? window.siyuan.languages.unpin : window.siyuan.languages.pin}">
|
||||
<svg><use xlink:href="#iconPin"></use></svg>
|
||||
<svg><use xlink:href="#icon${this.pin ? "Unpin" : "Pin"}"></use></svg>
|
||||
</span>`;
|
||||
this.element.classList.add("fn__none");
|
||||
} else {
|
||||
|
|
@ -125,6 +125,7 @@ export class Dock {
|
|||
} else if (target.classList.contains("dock__item")) {
|
||||
this.togglePin();
|
||||
target.setAttribute("aria-label", this.pin ? window.siyuan.languages.unpin : window.siyuan.languages.pin);
|
||||
target.querySelector("use").setAttribute("xlink:href", this.pin ? "#iconUnpin" : "#iconPin");
|
||||
event.preventDefault();
|
||||
break;
|
||||
}
|
||||
|
|
@ -698,7 +699,7 @@ export class Dock {
|
|||
}
|
||||
} else {
|
||||
this.element.firstElementChild.innerHTML = `${html}<span class="dock__item dock__item--pin b3-tooltips b3-tooltips__${this.getClassDirect(index)}" aria-label="${this.pin ? window.siyuan.languages.unpin : window.siyuan.languages.pin}">
|
||||
<svg><use xlink:href="#iconPin"></use></svg>
|
||||
<svg><use xlink:href="#icon${this.pin ? "Unpin" : "Pin"}"></use></svg>
|
||||
</span>`;
|
||||
}
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -296,7 +296,7 @@ export const setZoom = (type: "zoomIn" | "zoomOut" | "restore") => {
|
|||
|
||||
const openPlugin = (app: App, target: Element) => {
|
||||
const menu = new Menu("topBarPlugin");
|
||||
if(!isHuawei()) {
|
||||
if (!isHuawei()) {
|
||||
menu.addItem({
|
||||
icon: "iconSettings",
|
||||
label: window.siyuan.languages.manage,
|
||||
|
|
@ -322,7 +322,7 @@ const openPlugin = (app: App, target: Element) => {
|
|||
plugin.topBarIcons.forEach(item => {
|
||||
const hasUnpin = window.siyuan.storage[Constants.LOCAL_PLUGINTOPUNPIN].includes(item.id);
|
||||
const submenu = [{
|
||||
icon: "iconPin",
|
||||
icon: hasUnpin ? "iconPin" : "iconUnpin",
|
||||
label: hasUnpin ? window.siyuan.languages.pin : window.siyuan.languages.unpin,
|
||||
click() {
|
||||
if (hasUnpin) {
|
||||
|
|
|
|||
|
|
@ -1587,7 +1587,7 @@ export const tableMenu = (protyle: IProtyle, nodeElement: Element, cellElement:
|
|||
}
|
||||
const isPinHead = nodeElement.getAttribute("custom-pinthead");
|
||||
menus.push({
|
||||
icon: "iconPin",
|
||||
icon: isPinHead ? "iconUnpin" : "iconPin",
|
||||
label: isPinHead ? window.siyuan.languages.unpinTableHead : window.siyuan.languages.pinTableHead,
|
||||
click: () => {
|
||||
const html = nodeElement.outerHTML;
|
||||
|
|
|
|||
|
|
@ -193,7 +193,7 @@ export const initTabMenu = (app: App, tab: Tab) => {
|
|||
if (tab.headElement.classList.contains("item--pin")) {
|
||||
window.siyuan.menus.menu.append(new MenuItem({
|
||||
label: window.siyuan.languages.unpin,
|
||||
icon: "iconPin",
|
||||
icon: "iconUnpin",
|
||||
click: () => {
|
||||
tab.unpin();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -801,7 +801,7 @@ export class Toolbar {
|
|||
} else if (isInlineMemo) {
|
||||
title = window.siyuan.languages.memo;
|
||||
}
|
||||
const isPin = this.subElement.querySelector('[data-type="pin"]')?.classList.contains("block__icon--active");
|
||||
const isPin = this.subElement.querySelector('[data-type="pin"]')?.getAttribute("aria-label") === window.siyuan.languages.unpin;
|
||||
const pinData: IObject = {};
|
||||
if (isPin) {
|
||||
const textElement = this.subElement.querySelector(".b3-text-field") as HTMLTextAreaElement;
|
||||
|
|
@ -824,7 +824,7 @@ export class Toolbar {
|
|||
<span class="fn__space${protyle.disabled ? " fn__none" : ""}"></span>
|
||||
<button data-type="export" class="block__icon block__icon--show b3-tooltips b3-tooltips__nw" aria-label="${window.siyuan.languages.export} ${window.siyuan.languages.image}"><svg><use xlink:href="#iconImage"></use></svg></button>
|
||||
<span class="fn__space"></span>
|
||||
<button data-type="pin" class="block__icon block__icon--show b3-tooltips b3-tooltips__nw${isPin ? " block__icon--active" : ""}" aria-label="${window.siyuan.languages.pin}"><svg><use xlink:href="#iconPin"></use></svg></button>
|
||||
<button data-type="pin" class="block__icon block__icon--show b3-tooltips b3-tooltips__nw" aria-label="${isPin ? window.siyuan.languages.unpin : window.siyuan.languages.pin}"><svg><use xlink:href="#icon${isPin ? "Unpin" : "Pin"}"></use></svg></button>
|
||||
<span class="fn__space"></span>
|
||||
<button data-type="close" class="block__icon block__icon--show b3-tooltips b3-tooltips__nw" aria-label="${window.siyuan.languages.close}"><svg style="width: 10px"><use xlink:href="#iconClose"></use></svg></button>
|
||||
</div>
|
||||
|
|
@ -859,11 +859,11 @@ export class Toolbar {
|
|||
if (!btnElement) {
|
||||
if (event.detail === 2) {
|
||||
const pingElement = headerElement.querySelector('[data-type="pin"]');
|
||||
if (pingElement.classList.contains("block__icon--active")) {
|
||||
pingElement.classList.remove("block__icon--active");
|
||||
if (pingElement.getAttribute("aria-label") === window.siyuan.languages.unpin) {
|
||||
pingElement.querySelector("svg use").setAttribute("xlink:href", "#iconPin");
|
||||
pingElement.setAttribute("aria-label", window.siyuan.languages.pin);
|
||||
} else {
|
||||
pingElement.classList.add("block__icon--active");
|
||||
pingElement.querySelector("svg use").setAttribute("xlink:href", "#iconUnpin");
|
||||
pingElement.setAttribute("aria-label", window.siyuan.languages.unpin);
|
||||
}
|
||||
event.preventDefault();
|
||||
|
|
@ -874,15 +874,15 @@ export class Toolbar {
|
|||
event.stopPropagation();
|
||||
switch (btnElement.getAttribute("data-type")) {
|
||||
case "close":
|
||||
this.subElement.querySelector('[data-type="pin"]').classList.remove("block__icon--active");
|
||||
this.subElement.querySelector('[data-type="pin"]').setAttribute("aria-label", window.siyuan.languages.pin);
|
||||
hideElements(["util"], protyle);
|
||||
break;
|
||||
case "pin":
|
||||
if (btnElement.classList.contains("block__icon--active")) {
|
||||
btnElement.classList.remove("block__icon--active");
|
||||
if (btnElement.getAttribute("aria-label") === window.siyuan.languages.unpin) {
|
||||
btnElement.querySelector("svg use").setAttribute("xlink:href", "#iconPin");
|
||||
btnElement.setAttribute("aria-label", window.siyuan.languages.pin);
|
||||
} else {
|
||||
btnElement.classList.add("block__icon--active");
|
||||
btnElement.querySelector("svg use").setAttribute("xlink:href", "#iconUnpin");
|
||||
btnElement.setAttribute("aria-label", window.siyuan.languages.unpin);
|
||||
}
|
||||
break;
|
||||
|
|
@ -937,7 +937,7 @@ export class Toolbar {
|
|||
/// #if !MOBILE
|
||||
moveResize(this.subElement, () => {
|
||||
const pinElement = headerElement.querySelector('[data-type="pin"]');
|
||||
pinElement.classList.add("block__icon--active");
|
||||
pinElement.querySelector("svg use").setAttribute("xlink:href", "#iconUnpin");
|
||||
pinElement.setAttribute("aria-label", window.siyuan.languages.unpin);
|
||||
this.subElement.firstElementChild.setAttribute("data-drag", "true");
|
||||
});
|
||||
|
|
@ -993,7 +993,7 @@ export class Toolbar {
|
|||
return;
|
||||
}
|
||||
if (event.key === "Escape" || matchHotKey("⌘↩", event)) {
|
||||
this.subElement.querySelector('[data-type="pin"]').classList.remove("block__icon--active");
|
||||
this.subElement.querySelector('[data-type="pin"]').setAttribute("aria-label", window.siyuan.languages.pin);
|
||||
hideElements(["util"], protyle);
|
||||
} else if (event.key === "Tab") {
|
||||
// https://github.com/siyuan-note/siyuan/issues/5270
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ export const hideElements = (panels: string[], protyle?: IProtyle, focusHide = f
|
|||
}
|
||||
if (protyle.toolbar && panels.includes("util")) {
|
||||
const pinElement = protyle.toolbar.subElement.querySelector('[data-type="pin"]');
|
||||
if (focusHide || !pinElement || (pinElement && !pinElement.classList.contains("block__icon--active"))) {
|
||||
if (focusHide || !pinElement || (pinElement && pinElement.getAttribute("aria-label") === window.siyuan.languages.pin)) {
|
||||
protyle.toolbar.subElement.classList.add("fn__none");
|
||||
if (protyle.toolbar.subElementCloseCB) {
|
||||
protyle.toolbar.subElementCloseCB();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue