approved

On Sat, Mar 27, 2010 at 12:40 AM, Max Carlson <[email protected]> wrote:

> Change 20100325-maxcarlson-k by maxcarl...@bank on 2010-03-25 10:44:20 PDT
>    in /Users/maxcarlson/openlaszlo/trunk-clean
>    for http://svn.openlaszlo.org/openlaszlo/trunk
>
> Summary: UPDATED: Update viewsystem size when compiled fonts load in DHTML,
> make text measurement callbacks asynchronous.
>
> Bugs Fixed: LPP-8848 - DHTML: Textfields using embedded fonts aren't
> telling the viewsystem when their size changes
>
> Technical Reviewer: ptw
> QA Reviewer: hminsky
>
> Details: Updated to address Tucker's comments:
>
> Not approved yet:
>
> Right now, LzText seems to think it can tell the sprite to change the font
> and then immediately update its size by querying the sprite.  Clearly that
> does not work in all cases.  With this change, the LFC is still going to try
> to update the size synchonously, and then the sprite will also install a
> callback to update the size asynchronously.  Do we really want this
> redundancy? It seems inefficient if not outright wrong.
>
> Why don't we amend the LFC/Kernel API to say the LFC tells the sprite what
> to do and then the sprite will call back to the LFC if there is a size
> change?
>
> This ended up being a fairly large change, but it wound up being much more
> efficient!
>
> swf*/LzTextSprite - Call owner._updateSize() when initted is true and font
> size could have changed.   Add arg to getTextWidth() to advise if it's a
> user call.
>
> swf*/LzSprite - Add initted, set to true when init() is called.
>
> dhtml/LzFontManager - Move font loading code from LzSprite.  Add timeouts
> and improve efficiency.
>
> dhtml/LzTextSprite - Allow LzSprite to track initted.  Move font loading
> code to LzFontManager.  Make __updatefieldsize() defer until after initted.
>  Add __fontLoaded() callback fro LzFontManager.  __updatefieldsize() tracks
> and clears any existing timout IDs.  Add stub setMaxLength() method.  Add
> arg to getTextWidth() to advise if it's a user call, to allow widths to be
> measured accurately before initted.  Avoid text measurement until initted.
>
> dhtml/LzSprite - Consolidate __rootSprite __initdone flag to initted.  Add
> initted, set to true when init() is called.
>
> dhtml/LzInputTextSprite - Completely comment out init() override, so
> LzSprite.init() runs.
>
> LzText - Eliminate explicit _updateSize() calls, instead listen for size
> changes from the sprite, or at init() time.  Pass flag to sprite when
> getTextWidth() is being called from user code, to force measurement during
> init time.
>
> Tests: See LPP-8848, test/lztest/lztest-textheight.lzx, smokecheck,
> examples/components/component_sampler.lzx run as before across platforms.
>  Profiling DHTML apps in Firebug shows reduced calls to getTextDimension()
> and faster startup.
>
> Files:
> M       WEB-INF/lps/lfc/kernel/swf/LzTextSprite.as
> M       WEB-INF/lps/lfc/kernel/swf/LzSprite.as
> M       WEB-INF/lps/lfc/kernel/dhtml/LzFontManager.js
> M       WEB-INF/lps/lfc/kernel/dhtml/LzSprite.js
> M       WEB-INF/lps/lfc/kernel/dhtml/LzTextSprite.js
> M       WEB-INF/lps/lfc/kernel/dhtml/LzInputTextSprite.js
> M       WEB-INF/lps/lfc/kernel/swf9/LzTextSprite.as
> M       WEB-INF/lps/lfc/kernel/swf9/LzSprite.as
> M       WEB-INF/lps/lfc/views/LzText.lzs
>
> Changeset:
> http://svn.openlaszlo.org/openlaszlo/patches/20100325-maxcarlson-k.tar
>



-- 
Henry Minsky
Software Architect
[email protected]

Reply via email to