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`;
}