summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--modules/overlay/overlay-parent.js10
-rw-r--r--modules/toolbar/toolbar.js15
2 files changed, 17 insertions, 8 deletions
diff --git a/modules/overlay/overlay-parent.js b/modules/overlay/overlay-parent.js
index 71cf3885c..ace7deff7 100644
--- a/modules/overlay/overlay-parent.js
+++ b/modules/overlay/overlay-parent.js
@@ -1,4 +1,3 @@
-
(function ($) {
/**
@@ -861,8 +860,13 @@ Drupal.overlay.getDisplacement = function (region) {
if (lastDisplaced.length) {
displacement = lastDisplaced.offset().top + lastDisplaced.outerHeight();
- // Remove height added by IE Shadow filter.
- if (lastDisplaced[0].filters && lastDisplaced[0].filters.length && lastDisplaced[0].filters.item('DXImageTransform.Microsoft.Shadow')) {
+ // In modern browsers (including IE9), when box-shadow is defined, use the
+ // normal height.
+ var cssBoxShadowValue = lastDisplaced.css('box-shadow');
+ var boxShadow = (typeof cssBoxShadowValue !== 'undefined' && cssBoxShadowValue !== 'none');
+ // In IE8 and below, we use the shadow filter to apply box-shadow styles to
+ // the toolbar. It adds some extra height that we need to remove.
+ if (!boxShadow && /DXImageTransform\.Microsoft\.Shadow/.test(lastDisplaced.css('filter'))) {
displacement -= lastDisplaced[0].filters.item('DXImageTransform.Microsoft.Shadow').strength;
displacement = Math.max(0, displacement);
}
diff --git a/modules/toolbar/toolbar.js b/modules/toolbar/toolbar.js
index 5b61634bb..d50f20566 100644
--- a/modules/toolbar/toolbar.js
+++ b/modules/toolbar/toolbar.js
@@ -94,11 +94,16 @@ Drupal.toolbar.toggle = function() {
};
Drupal.toolbar.height = function() {
- var height = $('#toolbar').outerHeight();
- // In IE, Shadow filter adds some extra height, so we need to remove it from
- // the returned height.
- if ($('#toolbar').css('filter').match(/DXImageTransform\.Microsoft\.Shadow/)) {
- height -= $('#toolbar').get(0).filters.item("DXImageTransform.Microsoft.Shadow").strength;
+ var $toolbar = $('#toolbar');
+ var height = $toolbar.outerHeight();
+ // In modern browsers (including IE9), when box-shadow is defined, use the
+ // normal height.
+ var cssBoxShadowValue = $toolbar.css('box-shadow');
+ var boxShadow = (typeof cssBoxShadowValue !== 'undefined' && cssBoxShadowValue !== 'none');
+ // In IE8 and below, we use the shadow filter to apply box-shadow styles to
+ // the toolbar. It adds some extra height that we need to remove.
+ if (!boxShadow && /DXImageTransform\.Microsoft\.Shadow/.test($toolbar.css('filter'))) {
+ height -= $toolbar[0].filters.item("DXImageTransform.Microsoft.Shadow").strength;
}
return height;
};