FIX: Ensure floating quote button is not positioned under sidebar (#15634)
If themes/plugins introduce a sidebar on the left of the screen, the quote button would sometimes be positioned underneath. This commit ensures that the positioning logic keeps the floating buttons within the width of `.topic-area`
This commit is contained in:
parent
b725b7f1fa
commit
7329b766cb
|
@ -246,7 +246,12 @@ export default Component.extend(KeyEnterEscape, {
|
||||||
left = boundaryPosition.left;
|
left = boundaryPosition.left;
|
||||||
|
|
||||||
const safeRadius = 50;
|
const safeRadius = 50;
|
||||||
const viewportEdgeMargin = 10;
|
|
||||||
|
const topicArea = document
|
||||||
|
.querySelector(".topic-area")
|
||||||
|
.getBoundingClientRect();
|
||||||
|
topicArea.x += document.documentElement.scrollLeft;
|
||||||
|
topicArea.y += document.documentElement.scrollTop;
|
||||||
|
|
||||||
const endHandlePosition = boundaryPosition;
|
const endHandlePosition = boundaryPosition;
|
||||||
const width = this.element.clientWidth;
|
const width = this.element.clientWidth;
|
||||||
|
@ -270,12 +275,9 @@ export default Component.extend(KeyEnterEscape, {
|
||||||
];
|
];
|
||||||
|
|
||||||
for (const pos of possiblePositions) {
|
for (const pos of possiblePositions) {
|
||||||
// Ensure buttons are entirely within the viewport
|
// Ensure buttons are entirely within the .topic-area
|
||||||
pos.left = Math.max(viewportEdgeMargin, pos.left);
|
pos.left = Math.max(topicArea.left, pos.left);
|
||||||
pos.left = Math.min(
|
pos.left = Math.min(topicArea.right - width, pos.left);
|
||||||
window.innerWidth - viewportEdgeMargin - width,
|
|
||||||
pos.left
|
|
||||||
);
|
|
||||||
|
|
||||||
let clearOfStartHandle = true;
|
let clearOfStartHandle = true;
|
||||||
if (isAndroid) {
|
if (isAndroid) {
|
||||||
|
|
Loading…
Reference in New Issue