aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/editor.mjs
diff options
context:
space:
mode:
authorHsieh Chin Fan <pham@topo.tw>2024-09-30 17:59:05 +0800
committerHsieh Chin Fan <pham@topo.tw>2024-10-01 11:35:11 +0800
commitf4fe9ff6c1ce2811fe9aa0272333b4732a6ebcdc (patch)
tree6bde54a5c2afe37fb4bea6a00b492e74a0720e16 /src/editor.mjs
parent193ba872c455296bff55e5f6a7d6dbbbb85c265e (diff)
refactor: move menu feature from editor to dumbymap
Diffstat (limited to 'src/editor.mjs')
-rw-r--r--src/editor.mjs34
1 files changed, 0 insertions, 34 deletions
diff --git a/src/editor.mjs b/src/editor.mjs
index 9946686..760e2e1 100644
--- a/src/editor.mjs
+++ b/src/editor.mjs
@@ -661,39 +661,5 @@ layoutObserver.observe(HtmlContainer, {
661 attributeOldValue: true, 661 attributeOldValue: true,
662}); 662});
663// }}} 663// }}}
664// ContextMenu {{{
665document.oncontextmenu = e => {
666 if (cm.hasFocus()) return;
667
668 const selection = document.getSelection();
669 const range = selection.getRangeAt(0);
670 if (selection) {
671 e.preventDefault();
672 menu.innerHTML = '';
673 const addGeoLink = new menuItem.GeoLink({ range });
674 menu.appendChild(addGeoLink.createElement());
675 }
676 menu.style.cssText = `overflow: visible; display: block; left: ${e.clientX + 10}px; top: ${e.clientY + 5}px;`;
677 menu.appendChild(menuItem.pickMapItem(dumbymap));
678 menu.appendChild(menuItem.pickBlockItem(dumbymap));
679 menu.appendChild(menuItem.pickLayoutItem(dumbymap));
680};
681
682const actionOutsideMenu = e => {
683 if (menu.style.display === 'none' || cm.hasFocus()) return;
684 const rect = menu.getBoundingClientRect();
685 if (
686 e.clientX < rect.left ||
687 e.clientX > rect.left + rect.width ||
688 e.clientY < rect.top ||
689 e.clientY > rect.top + rect.height
690 ) {
691 menu.style.display = 'none';
692 }
693};
694
695document.addEventListener('click', actionOutsideMenu);
696
697// }}}
698 664
699// vim: sw=2 ts=2 foldmethod=marker foldmarker={{{,}}} 665// vim: sw=2 ts=2 foldmethod=marker foldmarker={{{,}}}