[Laszlo-dev] For Review: Change 20090427-hqm-Q Summary: fix for swf9 context menus, mouseEnabled no longer always set to true on every sprite
Henry Minsky
hminsky at laszlosystems.com
Tue Apr 28 05:55:56 PDT 2009
Oh crud, I just realized that if we turn off mouseEnabled on text fields by
default, that hyperlinks won't work. So if we go with this approach, I think
we need to have mouseEnabled = true on all LzTextSprite? Or maybe we could
be smart and only enable it if we detect that there's a hyperlink in the
context?
On Tue, Apr 28, 2009 at 8:35 AM, André Bargull <andre.bargull at udo.edu>wrote:
> + // Forward the MENU_SELECT event to the desired menu
>> + // first, to give it a chance to modify its items
>> + o.contextMenu.dispatchEvent(e);
>> + cm.customItems = o.contextMenu.customItems;
>>
>
> Don't you need to copy over the "builtInItems", too?
>
>
> + // If we hit a view with no menu, use the canvas menu as the default
>> + if (iobj.contextMenu == null) {
>> + return canvas.sprite;
>> + } else {
>>
>
> The canvas' context-menu and the default context-menu are different
> objects. See LPP-8113 for a testcase.
>
>
>
>
> On 4/28/2009 4:33 AM, Henry Minsky wrote:
>
>> again, this is a change against 4.2 branch
>>
>> I haven't established any performance increase with this change yet, but
>> it still seems like a good idea to remove the
>> mouseEnabled=true hack that we had put in place before.
>>
>>
>>
>> Change 20090427-hqm-Q by hqm at badtzmaru.home on 2009-04-27 22:00:56 EDT
>> in /Users/hqm/openlaszlo/4.2
>> for http://svn.openlaszlo.org/openlaszlo/branches/4.2
>>
>> Summary: fix for swf9 context menus, mouseEnabled no longer always set to
>> true on every sprite
>>
>> New Features:
>>
>> Bugs Fixed: LPP-6980
>>
>> Technical Reviewer: andre
>> QA Reviewer: max
>> Doc Reviewer: (pending)
>>
>> Documentation:
>>
>> Release Notes:
>>
>> Details:
>>
>>
>> + To work around the original bug (context menus don't work when
>> mouseEnabled == false on any parent), I created a context menu at the
>> very top level of the sprite hierarchy. This menu is the only context
>> menu in the entire application that is active. This is ensured by
>> having a "right-click-trap" sprite as the immediate child , that has
>> mouseEnabled = false.
>>
>> The Laszlo app canvas sprite and its children are children of this
>> 'right click trap' sprite.
>>
>> + the onmenuopen event on the active contextmenu is forwarded to the
>> appropriate view's menu , giving the view a chance to dynamically set
>> items when menu is opened
>>
>> + mouseEnabled is once again false by default for views, and is only
>> set to true for clickable views. This should hopefully help with the
>> CPU usage problem.
>>
>> Tests:
>>
>> test/contextmenu/api.lzx in swf9
>> test/contextmenu/lpp-6980.lzx in swf9
>>
>>
>> Files:
>> M test/contextmenu/api.lzx
>> M test/contextmenu/lpp-6980.lzx
>> M WEB-INF/lps/lfc/kernel/swf9/LFCApplication.as
>> M WEB-INF/lps/lfc/kernel/swf9/LzSprite.as
>>
>> Changeset:
>> http://svn.openlaszlo.org/openlaszlo/patches/20090427-hqm-Q.tar
>>
>>
--
Henry Minsky
Software Architect
hminsky at laszlosystems.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.openlaszlo.org/pipermail/laszlo-dev/attachments/20090428/c87fe6bf/attachment-0001.html
More information about the Laszlo-dev
mailing list