diff --git a/app/javascript/controllers/wiki_toolbar_controller.js b/app/javascript/controllers/wiki_toolbar_controller.js index 8f92b8a..9b847ea 100644 --- a/app/javascript/controllers/wiki_toolbar_controller.js +++ b/app/javascript/controllers/wiki_toolbar_controller.js @@ -231,7 +231,10 @@ export default class extends Controller { const parent = this.menu.offsetParent || document.documentElement const parentRect = parent.getBoundingClientRect() const buttonRect = button.getBoundingClientRect() - this.menu.style.left = `${buttonRect.left - parentRect.left + parent.scrollLeft}px` + const blockRect = this.element.getBoundingClientRect() + const overflow = buttonRect.left + this.menu.offsetWidth - blockRect.right + const left = Math.max(buttonRect.left - Math.max(overflow, 0), blockRect.left) + this.menu.style.left = `${left - parentRect.left + parent.scrollLeft}px` this.menu.style.top = `${buttonRect.bottom - parentRect.top + parent.scrollTop}px` }