diff --git a/app/src/block/Panel.ts b/app/src/block/Panel.ts index 6cb40fd1f..f5bc7f872 100644 --- a/app/src/block/Panel.ts +++ b/app/src/block/Panel.ts @@ -125,8 +125,8 @@ export class BlockPanel { } else if (type === "stickTab") { checkFold(this.refDefs[0].refID, (zoomIn, action) => { openFileById({ - app:options.app, - id:this.refDefs[0].refID, + app: options.app, + id: this.refDefs[0].refID, action, zoomIn, openNewTab: true diff --git a/app/src/block/popover.ts b/app/src/block/popover.ts index f995b9053..a216eb523 100644 --- a/app/src/block/popover.ts +++ b/app/src/block/popover.ts @@ -272,7 +272,16 @@ const hidePopover = (event: MouseEvent & { path: HTMLElement[] }) => { itemLevel > parseInt(blockElement.getAttribute("data-level"))) { if (menuLevel && menuLevel >= itemLevel) { // 有 gutter 菜单时不隐藏 + break; } else { + const hasToolbar = item.editors.find(editItem => { + if (!editItem.protyle.toolbar.subElement.classList.contains("fn__none")) { + return true; + } + }); + if (hasToolbar) { + break; + } item.destroy(); } } @@ -284,10 +293,20 @@ const hidePopover = (event: MouseEvent & { path: HTMLElement[] }) => { if ((item.targetElement || typeof item.x === "number") && item.element.getAttribute("data-pin") === "false") { if (menuLevel && menuLevel >= itemLevel) { // 有 gutter 菜单时不隐藏 + break; } else if (item.targetElement && item.targetElement.classList.contains("protyle-wysiwyg__embed") && item.targetElement.contains(targetElement)) { // 点击嵌入块后浮窗消失后再快速点击嵌入块无法弹出浮窗 https://github.com/siyuan-note/siyuan/issues/12511 + break; } else { + const hasToolbar = item.editors.find(editItem => { + if (!editItem.protyle.toolbar.subElement.classList.contains("fn__none")) { + return true; + } + }); + if (hasToolbar) { + break; + } item.destroy(); } }