mirror of
https://github.com/siyuan-note/siyuan.git
synced 2025-12-30 05:18:49 +01:00
This commit is contained in:
parent
62850f8cc3
commit
42e9d00c4c
2 changed files with 21 additions and 4 deletions
|
|
@ -809,12 +809,19 @@ const dragSame = async (protyle: IProtyle, sourceElements: Element[], targetElem
|
|||
|
||||
export const dropEvent = (protyle: IProtyle, editorElement: HTMLElement) => {
|
||||
editorElement.addEventListener("dragstart", (event) => {
|
||||
const target = event.target as HTMLElement;
|
||||
let target = event.target as HTMLElement;
|
||||
if (target.classList.contains("av__gallery-img")) {
|
||||
target = hasClosestByClassName(target, "av__gallery-item") as HTMLElement;
|
||||
}
|
||||
if (!target) {
|
||||
return;
|
||||
}
|
||||
if (target.tagName === "IMG") {
|
||||
window.siyuan.dragElement = undefined;
|
||||
event.preventDefault();
|
||||
return;
|
||||
}
|
||||
|
||||
if (target.classList) {
|
||||
if (hasClosestByClassName(target, "protyle-wysiwyg__embed")) {
|
||||
window.siyuan.dragElement = undefined;
|
||||
|
|
@ -848,6 +855,9 @@ export const dropEvent = (protyle: IProtyle, editorElement: HTMLElement) => {
|
|||
blockElement.querySelectorAll(".av__gallery-item--select").forEach(item => {
|
||||
selectIds.push(item.getAttribute("data-id"));
|
||||
});
|
||||
if (selectIds.length === 0) {
|
||||
selectIds.push(target.getAttribute("data-id"));
|
||||
}
|
||||
event.dataTransfer.setData(`${Constants.SIYUAN_DROP_GUTTER}NodeAttributeView${Constants.ZWSP}GalleryItem${Constants.ZWSP}${selectIds}`,
|
||||
target.outerHTML);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -619,10 +619,18 @@ export class WYSIWYG {
|
|||
}
|
||||
return;
|
||||
}
|
||||
|
||||
const documentSelf = document;
|
||||
// https://github.com/siyuan-note/siyuan/issues/15100
|
||||
if (galleryItemElement) {
|
||||
clearSelect(["galleryItem"], protyle.wysiwyg.element);
|
||||
documentSelf.onmouseup = () => {
|
||||
documentSelf.onmousemove = null;
|
||||
documentSelf.onmouseup = null;
|
||||
documentSelf.ondragstart = null;
|
||||
documentSelf.onselectstart = null;
|
||||
documentSelf.onselect = null;
|
||||
clearSelect(["galleryItem"], protyle.wysiwyg.element);
|
||||
return false;
|
||||
};
|
||||
return;
|
||||
}
|
||||
const avDragFillElement = hasClosestByClassName(target, "av__drag-fill");
|
||||
|
|
@ -638,7 +646,6 @@ export class WYSIWYG {
|
|||
(hasClosestByClassName(target, "av__cell--header") && !hasClosestByClassName(target, "av__widthdrag"))) {
|
||||
return;
|
||||
}
|
||||
const documentSelf = document;
|
||||
const wysiwygRect = protyle.wysiwyg.element.getBoundingClientRect();
|
||||
const wysiwygStyle = window.getComputedStyle(protyle.wysiwyg.element);
|
||||
const mostLeft = wysiwygRect.left + (parseInt(wysiwygStyle.paddingLeft) || 24) + 1;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue