diff --git a/android/app/src/main/assets/public/main.js b/android/app/src/main/assets/public/main.js index 36596e34..1ae4b4b8 100644 --- a/android/app/src/main/assets/public/main.js +++ b/android/app/src/main/assets/public/main.js @@ -2480,7 +2480,7 @@ async function generateMessagesHtml(entries, isPinnedContext = false) { let textStr = processBlah(actionStr); content = textStr.replace("{0}", clickableAuthor).replace("{1}", clickableMsg); } - html += `
${content}
`; + html += `
${content}
`; lastAuthor = null; consecutiveMessages = 0; } else { @@ -3220,6 +3220,20 @@ function handleMessageContextMenu(e, msgId) { `; } } + + let menuRect = fixedContextMenu.getBoundingClientRect(); + let newLeft = e.clientX + 10; + let newTop = e.clientY; + + if (newLeft + menuRect.width > window.innerWidth) { + newLeft = window.innerWidth - menuRect.width - 10; + } + if (newTop + menuRect.height > window.innerHeight) { + newTop = window.innerHeight - menuRect.height - 10; + } + + fixedContextMenu.style.left = `${newLeft}px`; + fixedContextMenu.style.top = `${newTop}px`; } diff --git a/webroot/main.js b/webroot/main.js index 36596e34..1ae4b4b8 100644 --- a/webroot/main.js +++ b/webroot/main.js @@ -2480,7 +2480,7 @@ async function generateMessagesHtml(entries, isPinnedContext = false) { let textStr = processBlah(actionStr); content = textStr.replace("{0}", clickableAuthor).replace("{1}", clickableMsg); } - html += `
${content}
`; + html += `
${content}
`; lastAuthor = null; consecutiveMessages = 0; } else { @@ -3220,6 +3220,20 @@ function handleMessageContextMenu(e, msgId) { `; } } + + let menuRect = fixedContextMenu.getBoundingClientRect(); + let newLeft = e.clientX + 10; + let newTop = e.clientY; + + if (newLeft + menuRect.width > window.innerWidth) { + newLeft = window.innerWidth - menuRect.width - 10; + } + if (newTop + menuRect.height > window.innerHeight) { + newTop = window.innerHeight - menuRect.height - 10; + } + + fixedContextMenu.style.left = `${newLeft}px`; + fixedContextMenu.style.top = `${newTop}px`; }