From c5ee80d6a0abf492328f46921dc3c37fb75c6324 Mon Sep 17 00:00:00 2001 From: Victor Homyakov Date: Tue, 28 Aug 2012 18:15:48 +0300 Subject: [PATCH] Fix for makeClipping/undoClipping issue MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit I've made earlier pull request with failing unit test for issue #1063 with `Element#makeClipping()`/`Element#undoClipping()`. Here is a patch for this issue. It deals with exact value of `element.style`, not with computed `Element#getStyle()`. --- src/prototype/dom/layout.js | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/prototype/dom/layout.js b/src/prototype/dom/layout.js index f376c3901..f63444ade 100644 --- a/src/prototype/dom/layout.js +++ b/src/prototype/dom/layout.js @@ -1356,15 +1356,14 @@ **/ function makeClipping(element) { element = $(element); - var storage = Element.getStorage(element), madeClipping = storage.get('prototype_made_clipping'); // The "prototype_made_clipping" storage key is meant to hold the - // original CSS overflow value. A string value or `null` means that we've + // original CSS overflow value. A string value (even empty) means that we've // called `makeClipping` already. An `undefined` value means we haven't. - if (Object.isUndefined(madeClipping)) { - var overflow = Element.getStyle(element, 'overflow'); + if (Object.isString(madeClipping)) { + var overflow = element.style.overflow || ''; storage.set('prototype_made_clipping', overflow); if (overflow !== 'hidden') element.style.overflow = 'hidden'; @@ -1425,9 +1424,9 @@ var storage = Element.getStorage(element), overflow = storage.get('prototype_made_clipping'); - if (!Object.isUndefined(overflow)) { + if (Object.isString(overflow)) { storage.unset('prototype_made_clipping'); - element.style.overflow = overflow || ''; + element.style.overflow = overflow; } return element;