Yes, of course it needs a permanent fix (on DropDownController, see previous mail).
The workaround was just intended to help you while waiting for the fix. Regards, Maurice -----Message d'origine----- De : Carlos Velasco [mailto:carlos.velasco.bla...@gmail.com] Envoyé : mercredi 18 septembre 2013 13:05 À : users@flex.apache.org Objet : Re: Callout Buttons inside Callout Content I think this kind of stuff is to be resolved for future SDK releases rather than letting anyone implement its own workaround, don't you agree? By the time, I will try the overriding suggestion and let you all know. 2013/9/18 Maurice Amsellem <maurice.amsel...@systar.com> > Hi again, > > I have found a workaround: > > DropDownController has public variable called hitAreaAdditions that > contains a list of DisplayObject to be excluded from triggering > callout close. > So you could just add CalloutButton2.callout to these hit areas when > it's open, and remove it when it's closed. > I have made a simple test, and it's working fine (when clicking Close > button inside Callout2, only Callout2 is closed). > > Note: dropDownController is not accessible from CalloutButton, so you > will have to override CalloutButton to make it public. > > WDYT ? > > Maurice > > -----Message d'origine----- > De : Maurice Amsellem [mailto:maurice.amsel...@systar.com] > Envoyé : mercredi 18 septembre 2013 11:08 À : users@flex.apache.org > Objet : RE: Callout Buttons inside Callout Content > > Hi, > > I have checked the source code, and the bug is in > DropDownController.systemManager_mouseDownHandler(), which makes an > incorrect assumption. > It assumes that if a mouse down occurs OUTSIDE of the callout, then > the callout should be closed. > This is true, unless the mouse down occurs INSIDE ANOTHER Callout, in > which case, it should be ignored. > See code below. > > > What do you think ? > > > /** > * @private > * Called when the systemManager receives a mouseDown event. This > closes > * the dropDown if the target is outside of the dropDown. > */ > mx_internal function systemManager_mouseDownHandler(event:Event):void > { > // stop here if mouse was down from being down on the open button > if (mouseIsDown) > { > mouseIsDown = false; > return; > } > > if (!dropDown || > (dropDown && > (event.target == dropDown > || (dropDown is DisplayObjectContainer && > > !DisplayObjectContainer(dropDown).contains(DisplayObject(event.target)))))) > { > > -----Message d'origine----- > De : Carlos Velasco [mailto:carlos.velasco.bla...@gmail.com] > Envoyé : mercredi 18 septembre 2013 10:31 À : > users@flex.apache.orgObjet : Re: Callout Buttons inside Callout > Content > > CalloutButton instances are to be closed using the closeDropDown() > method which is causing the problem. Calling it for one instance is > closing all instances. I think it was programmed that way thinking > there would never be > 2 CalloutButton instances opened at a time, but It really happens when > you use CalloutButtons inside the contents that are displayed when an > instance of CalloutButton is opened. > > Should it be thought as a bug???? > > > 2013/9/17 Jerry Hamby <jerryha...@vdex.com> > > > Carlos, > > > > This may or may not be of some help, but this is the way I control > > Callouts: > > > > I build a class to handle all opening and closing of callouts. I > > call it the "CalloutMaster". > > I create a property var to store the reference to each open callout, > > if you have 2 callouts open then you would have 2 separate > > properties for reference. > > > > example: > > public var pLoginCallout:Callout = new loginCallout; public var > > pSettingsCallout:Callout = new settingsCallout; > > > > I then can kill one or both of the reference at a time. > > > > CalloutMaster.getInstance().mKillLoginCallout(); > > > > public function mKillLoginCallout():void{ > > if(pLoginCallout){ > > pLoginCallout.close(); > > pLoginCallout = null; > > } > > } > > > > There may be easier ways, but this works well as an overall callout > > control. This also works nicely if you are dealing with mobile > > devices and need to handle the closing or resizing during a > > orientation change. > > > > Jerry > > > > > > On Sep 17, 2013, at 4:09 AM, Carlos Velasco wrote: > > > > > When using a callout button inside the callout content of a > > > different callout button I am having an undesired effect. > > > > > > Calling the dropdown method of the child callout button (the one > > > placed > > at > > > the callout content) is closing its callout content (as desired) > > > but also closing the parents callout content. > > > > > > Is there a way of avoiding that behaviour? > > > > > > Thanks in advance. > > > Carlos. > > > > > > >