You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by ma...@apache.org on 2010/01/22 11:49:13 UTC

svn commit: r902052 - /myfaces/trinidad/trunk/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/Core.js

Author: matzew
Date: Fri Jan 22 10:49:13 2010
New Revision: 902052

URL: http://svn.apache.org/viewvc?rev=902052&view=rev
Log:
TRINIDAD-1695 - Lightweight dialogs broken with Firefox 3.6

getBoxObjectFor() was deprecated with the advent of FF 3. With FF 3.6 it has been removed.
Using getBoundingClientRect() is the other option, in this case

Modified:
    myfaces/trinidad/trunk/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/Core.js

Modified: myfaces/trinidad/trunk/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/Core.js
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/Core.js?rev=902052&r1=902051&r2=902052&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/Core.js (original)
+++ myfaces/trinidad/trunk/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/Core.js Fri Jan 22 10:49:13 2010
@@ -4866,12 +4866,30 @@
       TrUIUtils._getElemLoc = function(elem)
       {
         var doc = elem.ownerDocument;
-        var box = doc.getBoxObjectFor(elem);
-        var loc = { x: box.screenX, y: box.screenY };
-        box = doc.getBoxObjectFor(doc.documentElement);
-        loc.x -= box.screenX;
-        loc.y -= box.screenY;
-        return loc;
+        
+        if (doc.getBoxObjectFor === undefined)
+        {
+          var boundingRect = elem.getBoundingClientRect();
+          // top and bottom are not rounded off in Gecko1.9
+          // http://www.quirksmode.org/dom/w3c_cssom.html#elementviewm
+          var elemTop = Math.round(boundingRect.top);
+          var elemLeft = boundingRect.left;
+          var docElement = doc.documentElement;
+          // clientLeft and clientTop would be 0 for Gecko1.9
+          // https://bugzilla.mozilla.org/show_bug.cgi?id=174397#c34
+          elemLeft += docElement.scrollLeft;
+          elemTop += docElement.scrollTop;
+          return {x:elemLeft, y:elemTop};
+        }
+        else
+        {
+          var box = doc.getBoxObjectFor(elem);
+          var loc = { x: box.screenX, y: box.screenY };
+          box = doc.getBoxObjectFor(doc.documentElement);
+          loc.x -= box.screenX;
+          loc.y -= box.screenY;
+          return loc;        
+        }
       }
     }
     else if(_agent.isIE)