diff --git a/app/src/protyle/render/av/gallery/render.ts b/app/src/protyle/render/av/gallery/render.ts index e22fca991..59ed6faa8 100644 --- a/app/src/protyle/render/av/gallery/render.ts +++ b/app/src/protyle/render/av/gallery/render.ts @@ -154,6 +154,10 @@ const afterRenderGallery = (options: ITableOptions) => { if (typeof options.resetData.oldOffset === "number") { options.protyle.contentElement.scrollTop = options.resetData.oldOffset; } + if (options.blockElement.getAttribute("data-need-focus") === 'true') { + focusBlock(options.blockElement); + options.blockElement.removeAttribute("data-need-focus"); + } options.blockElement.setAttribute("data-render", "true"); if (options.resetData.alignSelf) { options.blockElement.style.alignSelf = options.resetData.alignSelf; diff --git a/app/src/protyle/render/av/render.ts b/app/src/protyle/render/av/render.ts index e4249a6c0..5850a3b80 100644 --- a/app/src/protyle/render/av/render.ts +++ b/app/src/protyle/render/av/render.ts @@ -282,6 +282,10 @@ const renderGroupTable = (options: ITableOptions) => { }; const afterRenderTable = (options: ITableOptions) => { + if (options.blockElement.getAttribute("data-need-focus") === 'true') { + focusBlock(options.blockElement); + options.blockElement.removeAttribute("data-need-focus"); + } options.blockElement.setAttribute("data-render", "true"); options.blockElement.querySelector(".av__scroll").scrollLeft = options.resetData.left; options.blockElement.style.alignSelf = options.resetData.alignSelf; diff --git a/app/src/protyle/util/selection.ts b/app/src/protyle/util/selection.ts index 0a57653ce..e839b34c3 100644 --- a/app/src/protyle/util/selection.ts +++ b/app/src/protyle/util/selection.ts @@ -610,6 +610,7 @@ export const focusBlock = (element: Element, parentElement?: HTMLElement, toStar range.setStart(cursorElement.firstChild, 0); setRange = true; } else { + element.setAttribute("data-need-focus", "true"); return false; } /// #else