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

Raju Bitter rajubitter at me.com
Tue Jul 28 10:03:17 PDT 2009


Yes, I can only agree with what you are saying about the SWF click  
mode. I found that a strange behavior since I've been using the 2.1  
version of OL.

On Jul 28, 2009, at 4:50 PM, P T Withington wrote:

> If you look at the bug attachments, I tried to build a test case in  
> straight DHTML that would forward mouse events and it fails miserably.
>
> I think we are coming full-circle here to my original discussion  
> where I tried to evaluate which was more important:  a) faithfully  
> implementing the swf click model, or b) faithfully rendering the swf  
> view compositing model.
>
> It seemed most people would rather have "looks good" than "clicks  
> good".  Nobody liked the text bleeding through 'feature'.
>
> It's too bad we were led down the garden path by swf's click model.   
> Is it _really_ the case that "this kind of code appears all over  
> webtop" per your example below, or is this a specific test case that  
> is actually implemented by a core class in webtop (and hence might  
> be easily re-engineered to use a different compositing choice)?
>
> On 2009-07-27, at 21:25EDT, Max Carlson wrote:
>
>> 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