Skip to content

Commit 3971cf1

Browse files
committed
Restore TW menu on Obsidian 1.8
1 parent 716a2df commit 3971cf1

3 files changed

Lines changed: 28 additions & 14 deletions

File tree

manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"name": "Tag Wrangler",
44
"author": "PJ Eby",
55
"authorUrl": "https://github.com/pjeby",
6-
"version": "0.6.2",
6+
"version": "0.6.3",
77
"minAppVersion": "1.5.8",
88
"description": "Rename, merge, toggle, and search tags from the tags view",
99
"fundingUrl": "https://dirtsimple.org/tips/tag-wrangler",

src/plugin.js

Lines changed: 26 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -221,12 +221,7 @@ export default class TagWrangler extends Plugin {
221221
}
222222

223223
onMenu(e, tagEl) {
224-
let menu = e.obsidian_contextmenu;
225-
if (!menu) {
226-
menu = e.obsidian_contextmenu = new Menu();
227-
setTimeout(() => menu.showAtPosition({x: e.pageX, y: e.pageY}), 0);
228-
}
229-
224+
let menu = menuForEvent(e);
230225
const
231226
tagName = tagEl.find(".tag-pane-tag-text, .tag-pane-tag .tree-item-inner-text").textContent,
232227
isHierarchy = tagEl.parentElement.parentElement.find(".collapse-icon")
@@ -351,15 +346,22 @@ class TagPageUIHandler extends Component {
351346
}
352347
}
353348
});
349+
if (Menu.forEvent) {
350+
const remove2 = around(Menu, {forEvent(old) { return function (ev) {
351+
const m = old.call(this, e);
352+
if (ev === e) {
353+
self.plugin.setupMenu(m, toTag(targetEl));
354+
remove();
355+
}
356+
remove2()
357+
return m;
358+
}}})
359+
setTimeout(remove2, 0);
360+
}
354361
setTimeout(remove, 0);
355362
return
356363
}
357-
let menu = e.obsidian_contextmenu;
358-
if (!menu) {
359-
menu = e.obsidian_contextmenu = new Menu();
360-
setTimeout(() => menu.showAtPosition({x: e.pageX, y: e.pageY}), 0);
361-
}
362-
this.plugin.setupMenu(menu, toTag(targetEl));
364+
this.plugin.setupMenu(menuForEvent(e), toTag(targetEl));
363365
}, {capture: !!mergeMenu})
364366
);
365367
this.register(
@@ -404,3 +406,15 @@ class TagPageUIHandler extends Component {
404406
);
405407
}
406408
}
409+
410+
function menuForEvent(e) {
411+
if (Menu.forEvent) {
412+
return e.obsidian_contextmenu ||= Menu.forEvent(e)
413+
}
414+
let menu = e.obsidian_contextmenu;
415+
if (!menu) {
416+
menu = e.obsidian_contextmenu = new Menu();
417+
setTimeout(() => menu.showAtPosition({x: e.pageX, y: e.pageY}), 0);
418+
}
419+
return menu
420+
}

versions.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"0.6.2": "1.5.8",
2+
"0.6.3": "1.5.8",
33
"0.6.1": "1.2.8",
44
"0.6.0": "1.2.8",
55
"0.5.13": "1.2.8",

0 commit comments

Comments
 (0)