The problem is, if the sprite div has a size it intercepts mouse clicks. It's always on because we can't predict when an app will use a context menu.

Then again, it looks like we're hiding the visible and click divs altogether to catch right-clicks. What happens if you run the testcases with the quirk off?

On 12/30/10 12:18 PM, P T Withington wrote:
I could find where it was added.  This does not enlighten me as to why we made 
this quirk always be on or what purpose it serves.  I was hoping someone could 
remember what problem it is trying to work around.  If there is any chance we 
don't need to do it any more, it sure would simplify a lot of things!

On 2010-12-30, at 15:13, Max Carlson wrote:

Sorry, don't think we can remove it - it looks like the quirk was added to 
support context menus as part of this change:

Change 20090728-maxcarlson-L by maxcarl...@bank on 2009-07-28 17:53:48 PDT
    in /Users/maxcarlson/openlaszlo/trunk-clean
    for http://svn.openlaszlo.org/openlaszlo/trunk

Summary: Size views with no bgcolor or resource to 0x0, add separate tree for 
context menus

Bugs Fixed: LPP-5447 - DHTML: inputtext and clickable (partial)

Technical Reviewer: ptw
QA Reviewer: [email protected]

Details: LzSprite - (from ptw's change - 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.)  Add quirks property for sprite constructor.  Add 
fix_contextmenu and size_blank_to_zero quirks, default to on.  When 
fix_contextmenu quirk is on, build context menu container div called 
lzcanvascontextdiv that lives under the lzcanvasdiv and lzcanvasclickdiv.  Set 
x and y position, visibility, clipping and z-index of context container, if it 
exists.  Lazily build up context menu div tree when context menu is set.  Base 
__LZclick div on cached width and height values.  When size_blank_to_zero quirk 
is on and there's no bgcolor or source property set (and we're not a 
textsprite), set the width/height to 0 and set __sizedtozero flag so size can 
be restored as needed.  Set the context menu height/width if needed. Restore 
div siz
e when bgcolor or source is set to a non-null value. Modify __findParents() to 
accept an optional second argument - when true, look for parents with a null 
value.  Change __updateClip() to update contextmenu and click container div 
clip values.  Clean up context menu and context menu container divs in 
destroy().  Cache value passed to setID() so it can be used later.

LzTextSprite - Add istextsprite flag to test for text sprite classes more 
easily.

LzMouseKernel - If fix_contextmenu quirk is on, hide visible and click div 
trees so context menu tree can be checked to find the correct context menu to 
show.

Tests: Testcase attached to LPP-7661 works as before, as does the testcase from 
Maynard on 23/Feb/09 12:12 PM.  This change will make it possible for my recent 
changeset for LPP-5447 to work with context menus...

On 12/30/10 7:03 AM, P T Withington wrote:
What is the history/purpose of this?  Do we still need it?

As we add more and more CSS features, if we continue to support this quirk, we 
have to evaluate every CSS feature to decide when it results in a 'blank' 
sprite or not.  If this quirk is no longer needed, it would surely clean up the 
code significantly if we could remove it...

Reply via email to