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

Reply via email to