Vanessa 2025-03-22 23:42:20 +08:00
parent a12cc136d8
commit c347a0d8d0
3 changed files with 34 additions and 15 deletions

View File

@ -127,11 +127,14 @@ class App {
document.addEventListener("touchend", (event) => { document.addEventListener("touchend", (event) => {
handleTouchEnd(event, siyuanApp); handleTouchEnd(event, siyuanApp);
}, false); }, false);
window.addEventListener("keydown", (event) => { window.addEventListener("keyup", () => {
mobileKeydown(siyuanApp, event); window.siyuan.ctrlIsPressed = false;
window.siyuan.shiftIsPressed = false;
window.siyuan.altIsPressed = false;
}); });
// 移动端删除键 https://github.com/siyuan-note/siyuan/issues/9259 // 移动端删除键 https://github.com/siyuan-note/siyuan/issues/9259
window.addEventListener("keydown", (event) => { window.addEventListener("keydown", (event) => {
mobileKeydown(siyuanApp, event);
if (getSelection().rangeCount > 0) { if (getSelection().rangeCount > 0) {
const range = getSelection().getRangeAt(0); const range = getSelection().getRangeAt(0);
const editor = getCurrentEditor(); const editor = getCurrentEditor();

View File

@ -175,7 +175,7 @@ export const handleTouchMove = (event: TouchEvent) => {
} }
// 正在编辑时禁止滑动 // 正在编辑时禁止滑动
if(!document.querySelector("#keyboardToolbar").classList.contains("fn__none")) { if (!document.querySelector("#keyboardToolbar").classList.contains("fn__none")) {
return; return;
} }
// 只读状态下选中内容时时禁止滑动 // 只读状态下选中内容时时禁止滑动
@ -231,7 +231,8 @@ export const handleTouchMove = (event: TouchEvent) => {
hasClosestByAttribute(target, "data-type", "NodeAttributeView") || hasClosestByAttribute(target, "data-type", "NodeAttributeView") ||
hasClosestByAttribute(target, "data-type", "NodeMathBlock") || hasClosestByAttribute(target, "data-type", "NodeMathBlock") ||
hasClosestByAttribute(target, "data-type", "NodeTable") || hasClosestByAttribute(target, "data-type", "NodeTable") ||
hasTopClosestByClassName(target, "list"); hasTopClosestByClassName(target, "list") ||
hasTopClosestByClassName(target, "protyle-breadcrumb__bar--nowrap");
if (scrollElement) { if (scrollElement) {
if (scrollElement.classList.contains("table")) { if (scrollElement.classList.contains("table")) {
scrollElement = scrollElement.firstElementChild as HTMLElement; scrollElement = scrollElement.firstElementChild as HTMLElement;
@ -248,16 +249,26 @@ export const handleTouchMove = (event: TouchEvent) => {
scrollElement = scrollElement.parentElement; scrollElement = scrollElement.parentElement;
} }
} }
let noScroll = false;
if (scrollElement && ( if (scrollElement && scrollElement.scrollLeft === 0) {
(xDiff < 0 && scrollElement.scrollLeft > 0) || scrollElement.scrollLeft = 1;
(xDiff > 0 && scrollElement.clientWidth + scrollElement.scrollLeft < scrollElement.scrollWidth) if (scrollElement.scrollLeft === 0) {
)) { noScroll = true;
scrollBlock = true; } else {
return; scrollElement.scrollLeft = 0;
}
} }
if (scrollBlock) { if (!noScroll) {
return; if (scrollElement && (
(xDiff < 0 && scrollElement.scrollLeft > 0) ||
(xDiff > 0 && scrollElement.clientWidth + scrollElement.scrollLeft < scrollElement.scrollWidth)
)) {
scrollBlock = true;
return;
}
if (scrollBlock) {
return;
}
} }
} }
if (isFirstMove) { if (isFirstMove) {

View File

@ -2156,10 +2156,10 @@ export class WYSIWYG {
}); });
hideElements(["hint", "util"], protyle); hideElements(["hint", "util"], protyle);
const ctrlIsPressed = isOnlyMeta(event); const ctrlIsPressed = isOnlyMeta(event);
/// #if !MOBILE
const backlinkBreadcrumbItemElement = hasClosestByClassName(event.target, "protyle-breadcrumb__item"); const backlinkBreadcrumbItemElement = hasClosestByClassName(event.target, "protyle-breadcrumb__item");
if (backlinkBreadcrumbItemElement) { if (backlinkBreadcrumbItemElement) {
const breadcrumbId = backlinkBreadcrumbItemElement.getAttribute("data-id"); const breadcrumbId = backlinkBreadcrumbItemElement.getAttribute("data-id");
/// #if !MOBILE
if (breadcrumbId) { if (breadcrumbId) {
if (ctrlIsPressed && !event.shiftKey && !event.altKey) { if (ctrlIsPressed && !event.shiftKey && !event.altKey) {
checkFold(breadcrumbId, (zoomIn) => { checkFold(breadcrumbId, (zoomIn) => {
@ -2177,10 +2177,15 @@ export class WYSIWYG {
// 引用标题时的更多加载 // 引用标题时的更多加载
getBacklinkHeadingMore(backlinkBreadcrumbItemElement); getBacklinkHeadingMore(backlinkBreadcrumbItemElement);
} }
/// #else
if (breadcrumbId) {
loadBreadcrumb(protyle, backlinkBreadcrumbItemElement);
}
/// #endif
event.stopPropagation(); event.stopPropagation();
return; return;
} }
/// #endif
if (!event.shiftKey) { if (!event.shiftKey) {
this.shiftStartElement = undefined; this.shiftStartElement = undefined;
} }