diff options
Diffstat (limited to 'src/editor.mjs')
-rw-r--r-- | src/editor.mjs | 34 |
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 {{{ | ||
665 | document.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 | |||
682 | const 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 | |||
695 | document.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={{{,}}} |