diff --git a/app/src/menus/protyle.ts b/app/src/menus/protyle.ts
index d24beee12..03fe68dc3 100644
--- a/app/src/menus/protyle.ts
+++ b/app/src/menus/protyle.ts
@@ -400,6 +400,7 @@ export const imgMenu = (protyle: IProtyle, range: Range, assetElement: HTMLEleme
} else if (window.siyuan.config.editor.displayNetImgMark) {
assetElement.querySelector(".protyle-action__drag").insertAdjacentHTML("afterend", '');
}
+ nodeElement.setAttribute("updated", dayjs().format("YYYYMMDDHHmmss"))
updateTransaction(protyle, id, nodeElement.outerHTML, html);
html = nodeElement.outerHTML;
});
@@ -418,6 +419,7 @@ export const imgMenu = (protyle: IProtyle, range: Range, assetElement: HTMLEleme
assetElement.style.maxWidth = (imgElement.clientWidth + 10) + "px";
});
inputElement.addEventListener("change", () => {
+ nodeElement.setAttribute("updated", dayjs().format("YYYYMMDDHHmmss"))
updateTransaction(protyle, id, nodeElement.outerHTML, html);
html = nodeElement.outerHTML;
});
@@ -430,6 +432,7 @@ export const imgMenu = (protyle: IProtyle, range: Range, assetElement: HTMLEleme
inputElement.value = imgElement.getAttribute("alt") || "";
inputElement.addEventListener("change", (event) => {
imgElement.setAttribute("alt", (event.target as HTMLInputElement).value);
+ nodeElement.setAttribute("updated", dayjs().format("YYYYMMDDHHmmss"))
updateTransaction(protyle, id, nodeElement.outerHTML, html);
html = nodeElement.outerHTML;
});
@@ -438,6 +441,7 @@ export const imgMenu = (protyle: IProtyle, range: Range, assetElement: HTMLEleme
window.siyuan.menus.menu.append(new MenuItem({type: "separator"}).element);
window.siyuan.menus.menu.append(new MenuItem({
label: window.siyuan.languages.copy,
+ accelerator: "⌘C",
icon: "iconCopy",
click() {
writeText(protyle.lute.BlockDOM2Md(assetElement.outerHTML));
@@ -465,13 +469,26 @@ export const imgMenu = (protyle: IProtyle, range: Range, assetElement: HTMLEleme
tempElement.src = imgElement.getAttribute("src");
}
}).element);
+ window.siyuan.menus.menu.append(new MenuItem({
+ icon: "iconCut",
+ accelerator: "⌘X",
+ label: window.siyuan.languages.cut,
+ click() {
+ writeText(protyle.lute.BlockDOM2Md(assetElement.outerHTML));
+ (assetElement as HTMLElement).outerHTML = "";
+ nodeElement.setAttribute("updated", dayjs().format("YYYYMMDDHHmmss"))
+ updateTransaction(protyle, id, nodeElement.outerHTML, html);
+ focusByWbr(protyle.wysiwyg.element, range);
+ }
+ }).element);
window.siyuan.menus.menu.append(new MenuItem({
icon: "iconTrashcan",
+ accelerator: "⌫",
label: window.siyuan.languages.delete,
click: function () {
(assetElement as HTMLElement).outerHTML = "";
+ nodeElement.setAttribute("updated", dayjs().format("YYYYMMDDHHmmss"))
updateTransaction(protyle, id, nodeElement.outerHTML, html);
- html = nodeElement.outerHTML;
focusByWbr(protyle.wysiwyg.element, range);
}
}).element);
@@ -481,9 +498,9 @@ export const imgMenu = (protyle: IProtyle, range: Range, assetElement: HTMLEleme
label: window.siyuan.languages.alignCenter,
accelerator: window.siyuan.config.keymap.editor.general.alignCenter.custom,
click() {
+ nodeElement.setAttribute("updated", dayjs().format("YYYYMMDDHHmmss"))
assetElement.style.display = "block";
updateTransaction(protyle, id, nodeElement.outerHTML, html);
- html = nodeElement.outerHTML;
}
}).element);
window.siyuan.menus.menu.append(new MenuItem({
@@ -491,9 +508,9 @@ export const imgMenu = (protyle: IProtyle, range: Range, assetElement: HTMLEleme
label: window.siyuan.languages.alignLeft,
accelerator: window.siyuan.config.keymap.editor.general.alignLeft.custom,
click() {
+ nodeElement.setAttribute("updated", dayjs().format("YYYYMMDDHHmmss"))
assetElement.style.display = "";
updateTransaction(protyle, id, nodeElement.outerHTML, html);
- html = nodeElement.outerHTML;
}
}).element);
const width = parseInt(assetElement.style.width || "0");
@@ -519,6 +536,7 @@ export const imgMenu = (protyle: IProtyle, range: Range, assetElement: HTMLEleme
rangeElement.parentElement.setAttribute("aria-label", `${rangeElement.value}%`);
});
rangeElement.addEventListener("change", () => {
+ nodeElement.setAttribute("updated", dayjs().format("YYYYMMDDHHmmss"))
updateTransaction(protyle, id, nodeElement.outerHTML, html);
window.siyuan.menus.menu.remove();
focusBlock(nodeElement);
@@ -667,6 +685,7 @@ const genImageWidthMenu = (label: string, assetElement: HTMLElement, imgElement:
return {
label,
click() {
+ nodeElement.setAttribute("updated", dayjs().format("YYYYMMDDHHmmss"))
assetElement.style.width = label === window.siyuan.languages.default ? "" : label;
imgElement.style.width = label === window.siyuan.languages.default ? "" : "10000px";
assetElement.style.maxWidth = label === window.siyuan.languages.default ? (imgElement.clientWidth + 10) + "px" : "";
diff --git a/app/src/protyle/wysiwyg/index.ts b/app/src/protyle/wysiwyg/index.ts
index be0b4e352..99b7c1e1c 100644
--- a/app/src/protyle/wysiwyg/index.ts
+++ b/app/src/protyle/wysiwyg/index.ts
@@ -457,7 +457,7 @@ export class WYSIWYG {
}
if (target.tagName === "IMG" && hasClosestByClassName(target, "img")) {
imgMenu(protyle, protyle.toolbar.range, target.parentElement.parentElement, {
- clientX: event.clientX,
+ clientX: event.clientX + 4,
clientY: event.clientY
});
return false;
@@ -1494,7 +1494,7 @@ export class WYSIWYG {
const type = actionElement.parentElement.parentElement.getAttribute("data-type");
if (type === "img" && !protyle.disabled) {
imgMenu(protyle, range, actionElement.parentElement.parentElement, {
- clientX: event.clientX,
+ clientX: event.clientX + 4,
clientY: event.clientY
});
} else if (!protyle.disabled && actionElement.parentElement.classList.contains("li")) {