From 47efe8bf8378515ae2647dd20bae07635dd403c0 Mon Sep 17 00:00:00 2001 From: "(quasar) nebula" Date: Sat, 9 Mar 2024 15:39:00 -0400 Subject: client: WikiRect.contains, containedWithin --- src/static/client3.js | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) (limited to 'src/static') diff --git a/src/static/client3.js b/src/static/client3.js index 37bcee5..a44c480 100644 --- a/src/static/client3.js +++ b/src/static/client3.js @@ -549,6 +549,28 @@ class WikiRect extends DOMRect { return Reflect.construct(this.constructor, [x, y, width, height]); } + // Comparisons + + equals(rect) { + const rectNormalized = WikiRect.fromRect(rect).toNormalized(); + const thisNormalized = this.toNormalized(); + + return ( + rectNormalized.x === thisNormalized.x && + rectNormalized.y === thisNormalized.y && + rectNormalized.width === thisNormalized.width && + rectNormalized.height === thisNormalized.height + ); + } + + contains(rect) { + return this.intersectionWith(rect).equals(rect); + } + + containedWithin(rect) { + return this.intersectionWith(rect).equals(this); + } + // Interfacing utilities static fromRect(rect) { @@ -1437,12 +1459,7 @@ function positionTooltipFromHoverableWithBrains(hoverable) { const {baseline: baselineRect} = opportunities; - if ( - tooltipRect.top >= baselineRect.top && - tooltipRect.bottom <= baselineRect.bottom && - tooltipRect.left >= baselineRect.left && - tooltipRect.right <= baselineRect.right - ) { + if (baselineRect.contains(tooltipRect)) { return; } -- cgit 1.3.0-6-gf8a5