diff --git a/packages/block-editor/src/components/block-popover/inbetween.js b/packages/block-editor/src/components/block-popover/inbetween.js index 1ed4c7328acb7..2be2f9d72f15f 100644 --- a/packages/block-editor/src/components/block-popover/inbetween.js +++ b/packages/block-editor/src/components/block-popover/inbetween.js @@ -119,8 +119,8 @@ function BlockPopoverInbetween( { return { top: previousRect ? previousRect.bottom : nextRect.top, left: previousRect ? previousRect.right : nextRect.right, - right: previousRect ? previousRect.left : nextRect.left, - bottom: nextRect ? nextRect.top : previousRect.bottom, + right: previousRect ? previousRect.right : nextRect.right, + bottom: previousRect ? previousRect.bottom : nextRect.top, height: 0, width: 0, ownerDocument, @@ -130,8 +130,8 @@ function BlockPopoverInbetween( { return { top: previousRect ? previousRect.bottom : nextRect.top, left: previousRect ? previousRect.left : nextRect.left, - right: previousRect ? previousRect.right : nextRect.right, - bottom: nextRect ? nextRect.top : previousRect.bottom, + right: previousRect ? previousRect.left : nextRect.left, + bottom: previousRect ? previousRect.bottom : nextRect.top, height: 0, width: 0, ownerDocument, @@ -142,8 +142,8 @@ function BlockPopoverInbetween( { return { top: previousRect ? previousRect.top : nextRect.top, left: previousRect ? previousRect.left : nextRect.right, - right: nextRect ? nextRect.right : previousRect.left, - bottom: previousRect ? previousRect.bottom : nextRect.bottom, + right: previousRect ? previousRect.left : nextRect.right, + bottom: previousRect ? previousRect.top : nextRect.top, height: 0, width: 0, ownerDocument, @@ -153,8 +153,8 @@ function BlockPopoverInbetween( { return { top: previousRect ? previousRect.top : nextRect.top, left: previousRect ? previousRect.right : nextRect.left, - right: nextRect ? nextRect.left : previousRect.right, - bottom: previousRect ? previousRect.bottom : nextRect.bottom, + right: previousRect ? previousRect.right : nextRect.left, + bottom: previousRect ? previousRect.left : nextRect.right, height: 0, width: 0, ownerDocument, @@ -192,6 +192,7 @@ function BlockPopoverInbetween( { props.className ) } __unstableForcePosition + placement="bottom-start" >
!! m ); const anchorRefFallback = useRef( null ); @@ -271,13 +273,12 @@ const Popover = ( usedRef = { getBoundingClientRect() { const rect = getAnchorRect(); - return { - ...rect, - x: rect.x ?? rect.left, - y: rect.y ?? rect.top, - height: rect.height ?? rect.bottom - rect.top, - width: rect.width ?? rect.right - rect.left, - }; + return new window.DOMRect( + rect.x ?? rect.left, + rect.y ?? rect.top, + rect.width ?? rect.right - rect.left, + rect.height ?? rect.bottom - rect.top + ); }, }; } else if ( anchorRefFallback.current ) {