diff --git a/app/src/search/menu.ts b/app/src/search/menu.ts index 51485e223..63698e017 100644 --- a/app/src/search/menu.ts +++ b/app/src/search/menu.ts @@ -141,7 +141,13 @@ export const filterMenu = (config: ISearchOption, cb: () => void) => { }; export const queryMenu = (config: ISearchOption, cb: () => void) => { + if (!window.siyuan.menus.menu.element.classList.contains("fn__none") && + window.siyuan.menus.menu.element.getAttribute("data-name") === "searchMethod") { + window.siyuan.menus.menu.remove(); + return; + } window.siyuan.menus.menu.remove(); + window.siyuan.menus.menu.element.setAttribute("data-name", "searchMethod"); window.siyuan.menus.menu.append(new MenuItem({ iconHTML: Constants.ZWSP, label: window.siyuan.languages.keyword, @@ -235,7 +241,13 @@ export const moreMenu = async (config: ISearchOption, cb: () => void, removeCriterion: () => void, layoutMenu?: () => void) => { + if (!window.siyuan.menus.menu.element.classList.contains("fn__none") && + window.siyuan.menus.menu.element.getAttribute("data-name") === "searchMore") { + window.siyuan.menus.menu.remove(); + return; + } window.siyuan.menus.menu.remove(); + window.siyuan.menus.menu.element.setAttribute("data-name", "searchMore"); const sortMenu = [{ iconHTML: Constants.ZWSP, label: window.siyuan.languages.type, diff --git a/app/src/search/util.ts b/app/src/search/util.ts index fd021f0d7..838299aa3 100644 --- a/app/src/search/util.ts +++ b/app/src/search/util.ts @@ -536,7 +536,8 @@ export const genSearch = (app: App, config: ISearchOption, element: Element, clo }] }).element); }); - window.siyuan.menus.menu.popup({x: event.clientX - 16, y: event.clientY - 16}, true); + const rect = target.getBoundingClientRect(); + window.siyuan.menus.menu.popup({x: rect.right, y: rect.bottom}, true); event.stopPropagation(); event.preventDefault(); break; @@ -554,7 +555,8 @@ export const genSearch = (app: App, config: ISearchOption, element: Element, clo config.page = 1; inputEvent(element, config, undefined, edit, app); }); - window.siyuan.menus.menu.popup({x: event.clientX - 16, y: event.clientY - 16}, true); + const rect = target.getBoundingClientRect(); + window.siyuan.menus.menu.popup({x: rect.right, y: rect.bottom}, true); event.stopPropagation(); event.preventDefault(); break;