[Laszlo-checkins] r13298 - openlaszlo/trunk/WEB-INF/lps/lfc/kernel/swf9
bargull@openlaszlo.org
bargull at openlaszlo.org
Sun Mar 15 12:36:09 PDT 2009
Author: bargull
Date: 2009-03-15 12:36:04 -0700 (Sun, 15 Mar 2009)
New Revision: 13298
Modified:
openlaszlo/trunk/WEB-INF/lps/lfc/kernel/swf9/LzContextMenuKernel.lzs
Log:
Change 20090315-bargull-kne by bargull at dell--p4--2-53 on 2009-03-15 12:24:48
in /home/Admin/src/svn/openlaszlo/trunk
for http://svn.openlaszlo.org/openlaszlo/trunk
Summary: fix context-menu delegate handling
New Features:
Bugs Fixed: LPP-7918 (SWF9: previous delegate also called)
Technical Reviewer: hminsky
QA Reviewer: (pending)
Doc Reviewer: (pending)
Documentation:
Release Notes:
Details:
Don't use a closure as event-listener instead register a single method which handles the ContextMenuEvent.
Tests:
testcase at bugreport
Modified: openlaszlo/trunk/WEB-INF/lps/lfc/kernel/swf9/LzContextMenuKernel.lzs
===================================================================
--- openlaszlo/trunk/WEB-INF/lps/lfc/kernel/swf9/LzContextMenuKernel.lzs 2009-03-15 19:32:36 UTC (rev 13297)
+++ openlaszlo/trunk/WEB-INF/lps/lfc/kernel/swf9/LzContextMenuKernel.lzs 2009-03-15 19:36:04 UTC (rev 13298)
@@ -25,11 +25,21 @@
this.cm = new ContextMenu();
this.cm.hideBuiltInItems();
+ this.cm.addEventListener(ContextMenuEvent.MENU_SELECT, handleMenuSelect);
}
var owner:LzContextMenu = null;
var cm:ContextMenu = null;
+var delegate:LzDelegate = null;
+private function handleMenuSelect (e:ContextMenuEvent) :void {
+ var lzmenu:LzContextMenu = this.owner;
+ var delegate:LzDelegate = this.delegate;
+ if (delegate != null) {
+ delegate.execute(lzmenu);
+ }
+ if (lzmenu.onmenuopen.ready) lzmenu.onmenuopen.sendEvent(lzmenu);
+}
/**
* LzContextMenu.setDelegate
@@ -40,12 +50,7 @@
* @access private
*/
function setDelegate (delegate:LzDelegate) :void {
- var __litem__:LzContextMenu = this.owner;
- var callback:Function = function (e:ContextMenuEvent) :void {
- if (delegate != null) delegate.execute(__litem__);
- if (__litem__.onmenuopen.ready) __litem__.onmenuopen.sendEvent(__litem__);
- };
- this.cm.addEventListener(ContextMenuEvent.MENU_SELECT, callback);
+ this.delegate = delegate;
}
/**
@@ -114,12 +119,28 @@
function LzContextMenuItemKernel (newowner:LzContextMenuItem, title:String, del:*) {
this.owner = newowner;
this.cmenuitem = new ContextMenuItem(title);
+ this.cmenuitem.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, this.handleMenuItemSelect);
this.setDelegate(del);
}
var owner:LzContextMenuItem = null;
var cmenuitem:ContextMenuItem = null;
+var delegate:* = null;
+private function handleMenuItemSelect (e:ContextMenuEvent) :void {
+ var lzmenuitem:LzContextMenuItem = this.owner;
+ var delegate:* = this.delegate;
+ if (delegate != null) {
+ if (delegate is Function) {
+ delegate();
+ } else if (delegate is LzDelegate) {
+ delegate.execute(lzmenuitem);
+ } else if ($debug) {
+ Debug.error("LzContextMenuItem.setDelegate must be passed a delegate or function", lzmenuitem, delegate);
+ }
+ }
+ if (lzmenuitem.onselect.ready) lzmenuitem.onselect.sendEvent(lzmenuitem);
+}
/**
* LzContextMenuItem.setDelegate
@@ -130,20 +151,7 @@
* @access private
*/
function setDelegate (delegate:*) :void {
- var __litem__:LzContextMenuItem = this.owner;
- var callback:Function = function (e:ContextMenuEvent) :void {
- if (delegate != null) {
- if (delegate is Function) {
- delegate();
- } else if (delegate is LzDelegate) {
- delegate.execute(__litem__);
- } else if ($debug) {
- Debug.error("LzContextMenuItem.setDelegate must be passed a delegate or function", __litem__, delegate);
- }
- }
- if (__litem__.onselect.ready) __litem__.onselect.sendEvent(__litem__);
- };
- this.cmenuitem.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, callback);
+ this.delegate = delegate;
}
/**
More information about the Laszlo-checkins
mailing list