mirror of
https://github.com/TriliumNext/Notes.git
synced 2025-08-12 20:02:28 +08:00
feat(context_menu): dismiss note tooltip when a context menu is shown
This commit is contained in:
parent
d814a4d49f
commit
0288ebcad9
@ -1,5 +1,6 @@
|
|||||||
import type { CommandNames } from "../components/app_context.js";
|
import type { CommandNames } from "../components/app_context.js";
|
||||||
import keyboardActionService from "../services/keyboard_actions.js";
|
import keyboardActionService from "../services/keyboard_actions.js";
|
||||||
|
import note_tooltip from "../services/note_tooltip.js";
|
||||||
import utils from "../services/utils.js";
|
import utils from "../services/utils.js";
|
||||||
|
|
||||||
interface ContextMenuOptions<T extends CommandNames> {
|
interface ContextMenuOptions<T extends CommandNames> {
|
||||||
@ -57,6 +58,8 @@ class ContextMenu {
|
|||||||
async show<T extends CommandNames>(options: ContextMenuOptions<T>) {
|
async show<T extends CommandNames>(options: ContextMenuOptions<T>) {
|
||||||
this.options = options;
|
this.options = options;
|
||||||
|
|
||||||
|
note_tooltip.dismissAllTooltips();
|
||||||
|
|
||||||
if (this.$widget.hasClass("show")) {
|
if (this.$widget.hasClass("show")) {
|
||||||
// The menu is already visible. Hide the menu then open it again
|
// The menu is already visible. Hide the menu then open it again
|
||||||
// at the new location to re-trigger the opening animation.
|
// at the new location to re-trigger the opening animation.
|
||||||
|
@ -18,11 +18,11 @@ function setupGlobalTooltip() {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
cleanUpTooltips();
|
dismissAllTooltips();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function cleanUpTooltips() {
|
function dismissAllTooltips() {
|
||||||
$(".note-tooltip").remove();
|
$(".note-tooltip").remove();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -102,12 +102,12 @@ async function mouseEnterHandler(this: HTMLElement) {
|
|||||||
customClass: linkId
|
customClass: linkId
|
||||||
});
|
});
|
||||||
|
|
||||||
cleanUpTooltips();
|
dismissAllTooltips();
|
||||||
$(this).tooltip("show");
|
$(this).tooltip("show");
|
||||||
|
|
||||||
// Dismiss the tooltip immediately if a link was clicked inside the tooltip.
|
// Dismiss the tooltip immediately if a link was clicked inside the tooltip.
|
||||||
$(`.${tooltipClass} a`).on("click", (e) => {
|
$(`.${tooltipClass} a`).on("click", (e) => {
|
||||||
cleanUpTooltips();
|
dismissAllTooltips();
|
||||||
});
|
});
|
||||||
|
|
||||||
// the purpose of the code below is to:
|
// the purpose of the code below is to:
|
||||||
@ -117,7 +117,7 @@ async function mouseEnterHandler(this: HTMLElement) {
|
|||||||
const checkTooltip = () => {
|
const checkTooltip = () => {
|
||||||
if (!$(this).filter(":hover").length && !$(`.${linkId}:hover`).length) {
|
if (!$(this).filter(":hover").length && !$(`.${linkId}:hover`).length) {
|
||||||
// cursor is neither over the link nor over the tooltip, user likely is not interested
|
// cursor is neither over the link nor over the tooltip, user likely is not interested
|
||||||
cleanUpTooltips();
|
dismissAllTooltips();
|
||||||
} else {
|
} else {
|
||||||
setTimeout(checkTooltip, 1000);
|
setTimeout(checkTooltip, 1000);
|
||||||
}
|
}
|
||||||
@ -172,5 +172,6 @@ function renderFootnote($link: JQuery<HTMLElement>, url: string) {
|
|||||||
|
|
||||||
export default {
|
export default {
|
||||||
setupGlobalTooltip,
|
setupGlobalTooltip,
|
||||||
setupElementTooltip
|
setupElementTooltip,
|
||||||
|
dismissAllTooltips
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user