[Laszlo-dev] For Review: Change 20090727-maxcarlson-U Summary: UPDATED: Don't re-parent input text to click tree

Max Carlson max at openlaszlo.org
Mon Jul 27 18:25:47 PDT 2009


So, Maynard and I tested this on webtop today, and it works in most  
cases.  It falls down when a field is programatticaly focused - this  
causes the click tree to be hidden, so the mouse doesn't work until  
the inputtext is moused over and out.  I was able to fix this by  
checking the target div for the global mousemove event - if it's not  
an inputtext, I __hide() the one that's currently showing

The other (thornier) thing I can't figure out is how to deal with  
views in front of an inputtext.  This simple testcase fails.  I was  
able to work around a case with the animated focus brackets preventing  
text selection, but this kind of code appears all over webtop:
<canvas>
     <inputtext>Can't select or click because we're covered by another  
view</inputtext>
     <view width="100%" height="100%" bgcolor="red" opacity=".2"/>
</canvas>

So, do we go back to reparenting and accept the degenerate case where  
inputtext can be floating on top of everything?  I'm not sure how to:
a) detect there's an active inputtext behind the lzdiv and b) forward  
the mouse event there...

Anyone have any ideas there?  Otherwise, webtop will need to somehow  
prevent views from floating over inputtexts - in all cases.

On Jul 27, 2009, at 4:25 PM, Max Carlson wrote:

> Change 20090727-maxcarlson-U by maxcarlson at Bank.local on 2009-07-27  
> 16:21:22 PDT
>    in /Users/maxcarlson/openlaszlo/trunk-clean
>    for http://svn.openlaszlo.org/openlaszlo/trunk
>
>
> Summary: UPDATED: Don't re-parent input text to click tree
>
> Bugs Fixed: LPP-5447 DHTML: inputtext and clickable
>
> Technical Reviewer: ptw (pending)
> QA Reviewer: a.bargull at intensis.de (pending)
>
> Details:
>   This is based on Tucker's change (http://svn.openlaszlo.org/openlaszlo/patches/20090722-ptw-k.tar 
> ).  I turned off the dom_breaks_focus quirk for firefox, cleaned up  
> LzMouseKernel to not attempt to re-focus inputtexts when showing the  
> click tree again.  I also changed focusoverlay to allow clicks  
> through to an inputtext when the focus animation is happening.
>
>   This is just a first pass.  It doesn't reparent the input text
>   sprite into the click tree, and it turns off the click tree when
>   you mouse over in input element.  The test case works in Safari,
>   and Firefox.  I have not tested IE.
>
>   LzSprite:  Move the canvas hiding from the CSS class style to the  
> canvas
>   div, so removing it just removes the div style (and the div
>   reverts to the class style default).  Similarly for controlling
>   visibility on all divs.  Correct fencepost error in __isMouseOver.
>
>   LzInputTextSprite:  Add documentation from Max.  Fix init clauses
>   that were causing the schema-generator to warn.  Remove
>   reparenting code, replace with hiding/showing the click tree.  Now
>   we can just turn the whole click tree on and off, since we are not
>   reparenting, which should be much more efficient.  Only re-enable
>   click tree when we _actually_ leave the bounding box of the input
>   element.
>
> Tests:
>   Test case from LPP-8334
>
> Files:
> M      WEB-INF/lps/lfc/kernel/dhtml/LzSprite.js
> M      WEB-INF/lps/lfc/kernel/dhtml/LzMouseKernel.js
> M      WEB-INF/lps/lfc/kernel/dhtml/LzInputTextSprite.js
> M      lps/components/lz/focusoverlay.lzx
>
> Changeset: http://svn.openlaszlo.org/openlaszlo/patches/20090727-maxcarlson-U.tar



More information about the Laszlo-dev mailing list