@xeokit/xeokit-sdk 2.6.83 → 2.6.84

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xeokit/xeokit-sdk",
3
- "version": "2.6.83",
3
+ "version": "2.6.84",
4
4
  "description": "3D BIM IFC Viewer SDK for AEC engineering applications. Open Source JavaScript Toolkit based on pure WebGL for top performance, real-world coordinates and full double precision",
5
5
  "module": "./dist/xeokit-sdk.es.js",
6
6
  "main": "./dist/xeokit-sdk.cjs.js",
@@ -949,8 +949,13 @@ class ContextMenu {
949
949
  const menuWidth = menuElement.offsetWidth;
950
950
 
951
951
  const offsetRect = this._offsetParent.getBoundingClientRect();
952
-
953
- const bottomContainerBorder = offsetRect.bottom + window.scrollY;
952
+
953
+ // A regression occurred, that positions the menu horizontally above the client viewport
954
+ // at 6188de17ddca5c069b75a7673c1cda1aa1e74d07 when window.innerHeight has been replaced by offsetRect.bottom
955
+ // Reported originally at XCD-332
956
+ // Reproducible with examples/measurement/distance_createWithMouse_snapping.html
957
+ // Dirty hack introduced as XEOK-306, to be improved in the future to a more general solution
958
+ const bottomContainerBorder = ((this._offsetParent === window.document.body) && (offsetRect.bottom === 0)) ? window.innerHeight : (offsetRect.bottom + window.scrollY);
954
959
  const rightContainerBorder = offsetRect.right + window.scrollX;
955
960
  if ((pageY + menuHeight) > bottomContainerBorder) {
956
961
  pageY = bottomContainerBorder- menuHeight;