On 4/14/10 2:41 PM, Henry Minsky wrote:
1) Why do we need this {setWidth,setHeight}/skipupdate flag? Is
there ever a time that the generic LFC calls setHeight that it would
need a callback from the kernel to actually install the height? It
would seem better to me to fix up the sprite implementation to not
use the LFC->kernel API internally when it is trying to send an
update the other way (which is what the old `force` flag was for).
I was getting some kind of an actual loop that didn't terminate, in some
case with
input text, where the user typed something and the kernel sent that up to
the LFC via the inputtextevent() call, and that somehow sent a new
height back
down to the kernel, which caused something to update a diffent value
back to the LFC. Lemme
see if I can remember what was doing that, there should be some other way to
fix it.
I resolved this by having setWidth/Height() take their values as
definitive and not call back into the LFC to update at all...
On 2010-04-13, at 23:08, Max Carlson wrote:
> Change 20100410-hqm-e by [email protected] on 2010-04-10
19:31:18 EDT
> in /Users/hqm/openlaszlo/trunk
> for http://svn.openlaszlo.org/openlaszlo/trunk
>
> Summary: UPDATED BY MAX: make autosizing inputtext recompute it's
height properly when user types
>
> New Features:
>
> Bugs Fixed: LPP-8591 Something mysterious about scrollHeight
property in DHTML
>
> Technical Reviewer: max
> QA Reviewer: (pending)
> Doc Reviewer: (pending)
>
> Documentation:
>
> Release Notes:
>
> Overview: I tweaked this change a bit in order to make it more
efficient. I also renamed some args. Now
test/lztest/lztest-textheight.lzx lists all expected warnings, and
things look more visually consistent across dhtml, swf8 and swf10.
And of course, variable-height inputtexts resize when you type in
them. And, I found and fixed a text measurement bug in IE where the
first time a string was measured, it could be inaccurate.
>
> + make autosizing inputtext recompute it's height properly when
user types
>
>
>
> Details:
>
> WEB-INF/lps/lfc/kernel/dhtml/LzTextSprite.js:
> Needed to add a 'skipupdate' arg to setHeight, to prevent it from
> calling back up to the LFC with the updateSize() method.
>
> WEB-INF/lps/lfc/kernel/swf/LzTextSprite.as:
> Add new 'skipupdate' arg to setHeight (unused in this
implementation, but for compatibiltiy
> with DHTML)
>
> WEB-INF/lps/lfc/kernel/swf9/LzTextSprite.as:
> Add new 'skipupdate' arg to setHeight (unused in this
implementation, but for compatibiltiy
> with DHTML)
>
> WEB-INF/lps/lfc/kernel/dhtml/LzSprite.js:
> Added quirk for setting height to zero in order to get proper
scroll height in IE and Safari
> (see __textEvent() in dhtml/LzInputTextSprite.js)
>
> WEB-INF/lps/lfc/kernel/dhtml/LzInputTextSprite.js
> When a multiline field is supposed to be autosize it's height,
update the position for IE and Safari quirk, when user types into
the field.
>
> WEB-INF/lps/lfc/views/LzInputText.lzs:
>
> When 'onchange' event is received from kernel, multiline field
> should update it's height to the measured text height, using
> 'updateHeight' instead of setHeight (so it doesn't turn it into a
> fixed height field)
>
>
> WEB-INF/lps/lfc/views/LzText.lzs:
> Autosizing text fields should call updateHeight, not setHeight,
when updating
> their height, so they don't turn into fixed height fields.
>
>
> WEB-INF/lps/lfc/views/LaszloView.lzs:
> updateHeight and updateWidth methods update the memo cache vars
>
> WEB-INF/lps/server/src/org/openlaszlo/sc/CommonGenerator.java:
> + fix for an unrelated bug that was picked up by findBugs analysis
>
> WEB-INF/lps/server/src/org/openlaszlo/compiler/NodeModel.java:
> + need to tell the JDOM XML parser to preserve newlines in text.
>
>
> test/lztest/lztest-textheight.lzx:
>
> Retained all warnings,
>
> Tests: See LPP-8591
>
> Look at text and image sizing in:
> demos/lzpix/app.lzx swf,swf10,dhtml
> calendar demo
> amazon demo
> test/lztest/lztest-textheight.lzx
>
> test/smoke/smokecheck
>
> Files:
> M test/lztest/lztest-textheight.lzx
> M WEB-INF/lps/lfc/kernel/swf/LzTextSprite.as
> 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/LzInputText.lzs
> M WEB-INF/lps/lfc/views/LzText.lzs
> M WEB-INF/lps/lfc/views/LaszloView.lzs
> M WEB-INF/lps/server/src/org/openlaszlo/sc/CommonGenerator.java
> M WEB-INF/lps/server/src/org/openlaszlo/compiler/NodeModel.java
>
> Changeset:
http://svn.openlaszlo.org/openlaszlo/patches/20100410-hqm-e.tar
>
--
Henry Minsky
Software Architect
[email protected] <mailto:[email protected]>