From afd6a87228c64048eefda388c4c116a3d45cdd3b Mon Sep 17 00:00:00 2001 From: olcxja Date: Wed, 29 Jul 2026 16:19:27 +0200 Subject: [PATCH] fix larp.info* text wrap and message context menu positioning --- android/app/src/main/assets/public/main.js | 16 +++++++++++++++- webroot/main.js | 16 +++++++++++++++- 2 files changed, 30 insertions(+), 2 deletions(-) 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`; }