[Laszlo-dev] For Review: Change 20090219-maxcarlson-g Summary: UPDATED: Correct mouse position for invisible views in DHTML

André Bargull andre.bargull at udo.edu
Thu Feb 19 08:38:40 PST 2009


According to [1], getComputedStyle returns a CSSStyleDeclaration [2]. 
And to access any property, getPropertyValue must be used, but you used 
direct access ("styles['position'] == 'absolute'"). That doesn't work in 
FF3, does it work in Safari?
---
+ // look up computed style for Safari
+ if (lz.embed.browser.isSafari && document.defaultView && 
document.defaultView.getComputedStyle) {
+   var styles = document.defaultView.getComputedStyle(el, '');
+ }
+
// opera & (safari absolute) incorrectly account for body offsetTop
// used quirks.absolute_position_accounts_for_offset before...
- if ( (lz.embed.browser.isSafari || lz.embed.browser.isOpera) && 
this.hasOwnProperty('getStyle') && this.getStyle(el, 'position') == 
'absolute' ) {
+ if ( lz.embed.browser.isOpera || (lz.embed.browser.isSafari && styles 
&& styles['position'] == 'absolute' ) ) {
   pos.y -= document.body.offsetTop;
}
---


And I see two times the same definition for 
"LzSprite.prototype.__processHiddenParents" in "apply.sh".


[1] 
http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSview-getComputedStyle
[2] http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleDeclaration

On 2/19/2009 4:59 PM, Max Carlson wrote:
> Change 20090219-maxcarlson-g by maxcarlson at Bank.local on 2009-02-19 
> 05:47:11 PST
>     in /Users/maxcarlson/openlaszlo/trunk-clean
>     for http://svn.openlaszlo.org/openlaszlo/trunk
> 
> Summary: UPDATED: Correct mouse position for invisible views in DHTML
> 
> Bugs Fixed: LPP-7688 - dragstate doesn't behave the same in DHTML as swf8
> 
> Technical Reviewer: andre.bargull at udo.edu
> QA Reviewer: promanik
> 
> Details: LzSprite - Add comment for init().  Set __initdone flag to true 
> when canvas sprite is done initting.  Move logic for 
> finding/showing/hiding hidden parents to __processHiddenParents().  Use 
> __processHiddenParents() for invisible_parent_image_sizing_fix quirk and 
> in __getPos() for determining sprite position - used by getMouse().  
> Handle LPP-4357 in __getPos() by avoiding position caching when the app 
> isn't initted yet.  Fix position caching in __getPos().
> 
> embednew - Round off positions for Firefox, which sometimes returns 
> floats for getBoundingClientRect() according to quirksmode.  Add in 
> missing style lookup code for Safari, use to find divs with 
> position:absolute.  Fix logic to match comment above.
> 
> Tests: Testcase from LPP-4357 runs as before in firefox.  Testcase from 
> LPP-7688 is fixed.  Firebug only shows one call to getAbsolutePosition() 
> per drag event - this method can be expensive in some browsers.  Tested 
> both on Firefox 3, Safarii 3.2.1, Opera 9.5 and IE 7.
> 
> Files:
> M      WEB-INF/lps/lfc/kernel/dhtml/LzSprite.js
> M      lps/includes/source/embednew.js
> 
> Changeset: 
> http://svn.openlaszlo.org/openlaszlo/patches/20090219-maxcarlson-g.tar
> 


More information about the Laszlo-dev mailing list