summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
Diffstat (limited to 'modules')
-rw-r--r--modules/overlay/overlay-parent.css7
-rw-r--r--modules/overlay/overlay-parent.js31
-rw-r--r--modules/overlay/overlay.module3
3 files changed, 16 insertions, 25 deletions
diff --git a/modules/overlay/overlay-parent.css b/modules/overlay/overlay-parent.css
index e9cc0cc2c..edb1d4ef9 100644
--- a/modules/overlay/overlay-parent.css
+++ b/modules/overlay/overlay-parent.css
@@ -88,19 +88,12 @@ body.overlay-autofit {
padding: 0;
width: 100%;
overflow: visible;
- background: #fff url(images/loading.gif) no-repeat 50% 50%;
-}
-.overlay-loaded #overlay-container {
background: #fff;
}
.overlay #overlay-element {
overflow: hidden;
width: 100%;
height: 100%;
- display: none;
-}
-.overlay-loaded #overlay-element {
- display: block;
}
/**
diff --git a/modules/overlay/overlay-parent.js b/modules/overlay/overlay-parent.js
index 02fa8ab51..78efe9088 100644
--- a/modules/overlay/overlay-parent.js
+++ b/modules/overlay/overlay-parent.js
@@ -277,10 +277,6 @@ Drupal.overlay.load = function (url) {
self.$iframeDocument = null;
self.$iframeBody = null;
- // Reset lastHeight so the overlay fits user's viewport and the loading
- // spinner is centered.
- self.lastHeight = 0;
- self.outerResize();
// No need to resize while loading.
clearTimeout(self.resizeTimeoutID);
@@ -594,26 +590,25 @@ Drupal.overlay.isAdminLink = function (url) {
* Note, though, that the size of the iframe itself may affect the size of the
* child document, especially on fluid layouts.
*/
-Drupal.overlay.innerResize = function () {
+Drupal.overlay.innerResize = function (height) {
var self = Drupal.overlay;
// Proceed only if the dialog still exists.
- if (!self.isOpen || self.isClosing || self.isLoading) {
+ if (!self.isOpen || self.isClosing) {
return;
}
- var height;
- // Only set height when iframe content is loaded.
- if ($.isObject(self.$iframeBody)) {
+ // When no height is given try to get height when iframe content is loaded.
+ if (!height && $.isObject(self.$iframeBody)) {
height = self.$iframeBody.outerHeight() + 25;
-
- // Only resize when height actually is changed.
- if (height != self.lastHeight) {
-
- // Resize the container.
- self.$container.height(height);
- // Keep the dim background grow or shrink with the dialog.
- $.ui.dialog.overlay.resize();
- }
+ }
+
+ // Only resize when height actually is changed.
+ if (height && height != self.lastHeight) {
+ // Resize the container.
+ self.$container.height(height);
+ // Keep the dim background grow or shrink with the dialog.
+ $.ui.dialog.overlay.resize();
+
self.lastHeight = height;
}
};
diff --git a/modules/overlay/overlay.module b/modules/overlay/overlay.module
index fc44f2ef0..6212ae0f1 100644
--- a/modules/overlay/overlay.module
+++ b/modules/overlay/overlay.module
@@ -462,6 +462,9 @@ function overlay_set_mode($mode = NULL) {
case 'child':
drupal_add_library('overlay', 'child');
+ // Pass child's document height on to parent document as quickly as
+ // possible so it can be updated accordingly.
+ drupal_add_js('if (jQuery.isObject(parent.Drupal) && jQuery.isObject(parent.Drupal.overlay)) { parent.Drupal.overlay.innerResize(jQuery(document.body).outerHeight()); }', array('type' => 'inline', 'scope' => 'footer'));
// Allow modules to act upon overlay events.
module_invoke_all('overlay_child_initialize');