From 2fe2c1bfb9918ae1d49aa534027bf825a64bc4aa Mon Sep 17 00:00:00 2001 From: Joffrey JAFFEUX Date: Fri, 20 Oct 2017 14:03:26 -0700 Subject: [PATCH] [FIX] Better header height computation Prevents the select-box to think there's enough space above (very common when using customised header). --- .../select-box-kit/components/select-box-kit.js.es6 | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/assets/javascripts/select-box-kit/components/select-box-kit.js.es6 b/app/assets/javascripts/select-box-kit/components/select-box-kit.js.es6 index 993957a00a6..d9461d1cac1 100644 --- a/app/assets/javascripts/select-box-kit/components/select-box-kit.js.es6 +++ b/app/assets/javascripts/select-box-kit/components/select-box-kit.js.es6 @@ -340,7 +340,9 @@ export default Ember.Component.extend(UtilsMixin, DomHelpersMixin, KeyboardMixin _applyDirection() { let options = { left: "auto", bottom: "auto", top: "auto" }; - const discourseHeaderHeight = $(".d-header").outerHeight(false); + + const dHeaderBounds = $(".d-header")[0].getBoundingClientRect(); + const dHeaderHeight = dHeaderBounds.top + dHeaderBounds.height; const headerHeight = this.$header().outerHeight(false); const headerWidth = this.$header().outerWidth(false); const bodyHeight = this.$body().outerHeight(false); @@ -384,7 +386,7 @@ export default Ember.Component.extend(UtilsMixin, DomHelpersMixin, KeyboardMixin const componentHeight = this.get("verticalOffset") + bodyHeight + headerHeight; const hasBelowSpace = windowHeight - offsetBottom - componentHeight > 0; - const hasAboveSpace = offsetTop - componentHeight - discourseHeaderHeight > 0; + const hasAboveSpace = offsetTop - componentHeight - dHeaderHeight > 0; if (hasBelowSpace || (!hasBelowSpace && !hasAboveSpace)) { this.setProperties({ isBelow: true, isAbove: false }); options.top = headerHeight + this.get("verticalOffset");