Skip to content

Commit b673a0c

Browse files
authored
fix(ui5-popover): ensure offset from window borders (#1690)
By design the popover should have a minimum 10 px offset from the window borders. FIXES: #1656
1 parent 934b4df commit b673a0c

File tree

1 file changed

+11
-4
lines changed

1 file changed

+11
-4
lines changed

packages/main/src/Popover.js

+11-4
Original file line numberDiff line numberDiff line change
@@ -270,6 +270,10 @@ class Popover extends Popup {
270270
return PopoverTemplate;
271271
}
272272

273+
static get MIN_OFFSET() {
274+
return 10; // px
275+
}
276+
273277
isOpenerClicked(event) {
274278
const target = event.target;
275279
return target === this._opener || (target.getFocusDomRef && target.getFocusDomRef() === this._opener);
@@ -404,12 +408,15 @@ class Popover extends Popup {
404408

405409
this._oldPlacement = placement;
406410

411+
const popoverOnLeftBorder = this._left === 0;
412+
const popoverOnTopBorder = this._top === 0;
413+
407414
this.actualPlacementType = placement.placementType;
408-
this.arrowTranslateX = placement.arrowX;
409-
this.arrowTranslateY = placement.arrowY;
415+
this.arrowTranslateX = popoverOnLeftBorder ? placement.arrowX - Popover.MIN_OFFSET : placement.arrowX;
416+
this.arrowTranslateY = popoverOnTopBorder ? placement.arrowY - Popover.MIN_OFFSET : placement.arrowY;
410417

411-
this.style.left = `${this._left}px`;
412-
this.style.top = `${this._top}px`;
418+
this.style.left = `${popoverOnLeftBorder ? Popover.MIN_OFFSET : this._left}px`;
419+
this.style.top = `${popoverOnTopBorder ? Popover.MIN_OFFSET : this._top}px`;
413420
this.show();
414421

415422
if (stretching && this._width) {

0 commit comments

Comments
 (0)