Changeset 1350

Show
Ignore:
Timestamp:
03/30/08 10:09:00 (7 months ago)
Author:
cederberg@gmail.com
Message:

Fixed #265 by moving the Opera bug fix code to the correct if-block (and removed premature return statement for IE).

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • mochikit/trunk/MochiKit/Style.js

    r1319 r1350  
    216216                (de.clientTop || 0); 
    217217 
    218             // Don't pass through next steps 
    219             return c; 
    220218        } else if (elem.offsetParent) { 
    221219            c.x += elem.offsetLeft; 
     
    247245 
    248246            } 
     247 
     248            // Adjust position for strange Opera scroll bug 
     249            if (elem.parentNode) { 
     250                parent = elem.parentNode; 
     251            } else { 
     252                parent = null; 
     253            } 
     254            while (parent) { 
     255                var tagName = parent.tagName.toUpperCase(); 
     256                if (tagName === 'BODY' || tagName === 'HTML') { 
     257                    break; 
     258                } 
     259                var disp = self.getStyle(parent, 'display'); 
     260                // Handle strange Opera bug for some display 
     261                if (disp.search(/^inline|table-row.*$/i)) { 
     262                    c.x -= parent.scrollLeft; 
     263                    c.y -= parent.scrollTop; 
     264                } 
     265                if (parent.parentNode) { 
     266                    parent = parent.parentNode; 
     267                } else { 
     268                    parent = null; 
     269                } 
     270            } 
    249271        } 
    250272 
     
    254276                c.x -= (relativeTo.x || 0); 
    255277                c.y -= (relativeTo.y || 0); 
    256             } 
    257         } 
    258  
    259         if (elem.parentNode) { 
    260             parent = elem.parentNode; 
    261         } else { 
    262             parent = null; 
    263         } 
    264  
    265         while (parent) { 
    266             var tagName = parent.tagName.toUpperCase(); 
    267             if (tagName === 'BODY' || tagName === 'HTML') { 
    268                 break; 
    269             } 
    270             var disp = self.getStyle(parent, 'display'); 
    271             // Handle strange Opera bug for some display 
    272             if (disp.search(/^inline|table-row.*$/i)) { 
    273                 c.x -= parent.scrollLeft; 
    274                 c.y -= parent.scrollTop; 
    275             } 
    276             if (parent.parentNode) { 
    277                 parent = parent.parentNode; 
    278             } else { 
    279                 parent = null; 
    280278            } 
    281279        } 
  • mochikit/trunk/packed/MochiKit/MochiKit.js

    r1348 r1350  
    39063906c.x+=box.left+(de.scrollLeft||b.scrollLeft)-(de.clientLeft||0); 
    39073907c.y+=box.top+(de.scrollTop||b.scrollTop)-(de.clientTop||0); 
    3908 return c; 
    39093908}else{ 
    39103909if(elem.offsetParent){ 
     
    39243923c.y-=b.offsetTop; 
    39253924} 
     3925if(elem.parentNode){ 
     3926_420=elem.parentNode; 
     3927}else{ 
     3928_420=null; 
     3929} 
     3930while(_420){ 
     3931var _425=_420.tagName.toUpperCase(); 
     3932if(_425==="BODY"||_425==="HTML"){ 
     3933break; 
     3934} 
     3935var disp=self.getStyle(_420,"display"); 
     3936if(disp.search(/^inline|table-row.*$/i)){ 
     3937c.x-=_420.scrollLeft; 
     3938c.y-=_420.scrollTop; 
     3939} 
     3940if(_420.parentNode){ 
     3941_420=_420.parentNode; 
     3942}else{ 
     3943_420=null; 
     3944} 
     3945} 
    39263946} 
    39273947} 
     
    39323952c.x-=(_41b.x||0); 
    39333953c.y-=(_41b.y||0); 
    3934 } 
    3935 } 
    3936 if(elem.parentNode){ 
    3937 _420=elem.parentNode; 
    3938 }else{ 
    3939 _420=null; 
    3940 } 
    3941 while(_420){ 
    3942 var _425=_420.tagName.toUpperCase(); 
    3943 if(_425==="BODY"||_425==="HTML"){ 
    3944 break; 
    3945 } 
    3946 var disp=self.getStyle(_420,"display"); 
    3947 if(disp.search(/^inline|table-row.*$/i)){ 
    3948 c.x-=_420.scrollLeft; 
    3949 c.y-=_420.scrollTop; 
    3950 } 
    3951 if(_420.parentNode){ 
    3952 _420=_420.parentNode; 
    3953 }else{ 
    3954 _420=null; 
    39553954} 
    39563955}