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...