I read through what you did in JSStageEvents. That’s really quite ingenious. 
Well done! :-)

I think we could use a similar approach for an application bead to support full 
event bubbling without modifying ElementWrapper and HTMLElementWrapper.

I still have no idea what broke though.

Let me know if I should revert the changes until someone has the time to look 
at this.

Thanks,
Harbs
> On Dec 23, 2019, at 10:59 PM, Greg Dove <greg.d...@gmail.com> wrote:
> 
> Iirc it was dispatching capture phase events that was 'difficult'. I think
> I had to override something and undo something in Royale that was switching
> off goog support for that. It was only needed in the JSStageEvents
> emulation stuff iirc. I have no idea what the issue is, but that is
> probably what I would look at first. Have to go now... I can look at this
> if needed but not for a few days.
> 
> On Tue, 24 Dec 2019, 09:38 Harbs, <harbs.li...@gmail.com> wrote:
> 
>> AIUI, for bubbling to work automatically, setParentEventTarget needs to be
>> called to construct the hierarchy.
>> 
>> Maybe we should have a bead that takes care of this (on addedToParent or
>> something) for applications which rely on bubbling for non-browser-native
>> events.
>> 
>> There is a dispatchBubblingEvent in HTMLElementWrapper which forces the
>> event to bubble up for all events, but it’s JS only. We could add a method
>> for SWF for compatibility.
>> 
>> I just tested dispatchBubblingEvent and that makes the alert appear.
>> 
>> None of this explains why it worked before my change, though...
>> 
>>> On Dec 23, 2019, at 10:17 PM, Greg Dove <greg.d...@gmail.com> wrote:
>>> 
>>> Harbs, I can only check Crux in 4-5 days time.
>>> From memory I did set up something specific to make either capture or
>>> bubbling work, maybe that was for the 'addedToStage' event emulation. I
>>> think one of them (either capture or bubbling) was not working by
>> default,
>>> or did was not easy to enable by default.
>>> 
>>> 
>>> 
>>> On Tue, Dec 24, 2019 at 9:13 AM Harbs <harbs.li...@gmail.com> wrote:
>>> 
>>>> Nope. Didn’t figure it out.
>>>> 
>>>> It looks like Crux listens on the ancestor and is relying on bubbling.
>>>> 
>>>> I’m guessing bubbling is not working, but I have no idea why that would
>>>> have changed with my commit.
>>>> 
>>>>> On Dec 23, 2019, at 10:06 PM, Piotr Zarzycki <
>> piotrzarzyck...@gmail.com>
>>>> wrote:
>>>>> 
>>>>> Harbs,
>>>>> 
>>>>> I feel like Carlos has started his Christmas time ;) I'm glad that you
>>>>> figured it out! :)
>>>>> 
>>>>> pon., 23 gru 2019 o 21:01 Harbs <harbs.li...@gmail.com <mailto:
>>>> harbs.li...@gmail.com>> napisał(a):
>>>>> 
>>>>>> The asconfig file did not include the necessary metadata. Fixed that…
>>>>>> 
>>>>>> OK. I’m not getting any errors, but UserForm is dispatching an event
>> not
>>>>>> listened to by anyone.
>>>>>> 
>>>>>> Where is the listener supposed to be attached? Maybe it’s listening to
>>>> the
>>>>>> wrong object?
>>>>>> 
>>>>>> 
>>>>>>> On Dec 23, 2019, at 9:35 PM, Harbs <harbs.li...@gmail.com> wrote:
>>>>>>> 
>>>>>>> I’m getting an error that UserForm.user is null.
>>>>>>> 
>>>>>>> I have no idea where that should have been set, and I have no idea
>> how
>>>>>> my commit could have possibly effected that. I don’t see anything that
>>>>>> would initialize the user variable.
>>>>>>> 
>>>>>>> If you want my help on this, I’m going to need some direction.
>>>>>>> 
>>>>>>> Thanks,
>>>>>>> Harbs
>>>>>>> 
>>>>>>>> On Dec 23, 2019, at 9:28 PM, Harbs <harbs.li...@gmail.com <mailto:
>>>> harbs.li...@gmail.com> <mailto:
>>>>>> harbs.li...@gmail.com <mailto:harbs.li...@gmail.com>>> wrote:
>>>>>>>> 
>>>>>>>> I fixed this, but I have no idea what Crux is supposed to do.
>>>>>>>> 
>>>>>>>> What am I looking for?
>>>>>>>> 
>>>>>>>>> On Dec 23, 2019, at 8:30 PM, Harbs <harbs.li...@gmail.com <mailto:
>>>> harbs.li...@gmail.com> <mailto:
>>>>>> harbs.li...@gmail.com <mailto:harbs.li...@gmail.com>>> wrote:
>>>>>>>>> 
>>>>>>>>> I can’t compile Jewel right now.
>>>>>>>>> 
>>>>>>>>> I’m getting an error:
>>>>>>>>> 
>>>>>>>>>   [java]
>>>>>> 
>>>> 
>> /Apache/royale-asjs/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/IconButton.as(104):
>>>>>> col: 13 Access of possibly undefined property classSelectorList.
>>>>>>>>>   [java]
>>>>>>>>>   [java]             classSelectorList.toggle("icon", (_icon !=
>>>>>> null));
>>>>>>>>>   [java]             ^
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>>> On Dec 23, 2019, at 7:17 PM, Carlos Rovira <
>> carlosrov...@apache.org
>>>> <mailto:carlosrov...@apache.org>
>>>>>> <mailto:carlosrov...@apache.org <mailto:carlosrov...@apache.org>>>
>>>> wrote:
>>>>>>>>>> 
>>>>>>>>>> Compilation is ok. The problem is that example is not really
>>>> working.
>>>>>>>>>> In that example you should be able to fill the form and push the
>>>>>> button.
>>>>>>>>>> After that a JS Alert should be show with the ID of the user
>> record
>>>>>> saved.
>>>>>>>>>> That Alert is not show anymore.
>>>>>>>>>> If you revert locally that commit and recompile Core and then the
>>>>>> example
>>>>>>>>>> and run you'll be able to see it again.
>>>>>>>>>> We have a client complaining about the app stopped to work today
>>>>>> since they
>>>>>>>>>> are using Crux.
>>>>>>>>>> After investigation I was able to trace the problem to that
>> commit.
>>>>>>>>>> 
>>>>>>>>>> Thanks
>>>>>>>>>> 
>>>>>>>>>> Carlos
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> El lun., 23 dic. 2019 a las 17:59, Harbs (<harbs.li...@gmail.com
>>>> <mailto:harbs.li...@gmail.com>
>>>>>> <mailto:harbs.li...@gmail.com <mailto:harbs.li...@gmail.com>>>)
>>>> escribió:
>>>>>>>>>> 
>>>>>>>>>>> I compiled CruxQuickStartBasic and I don’t see anything wrong.
>>>>>>>>>>> 
>>>>>>>>>>> Can you give me more clues?
>>>>>>>>>>> 
>>>>>>>>>>> FWIW, I used Ant, is the problem specific to Maven?
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>>> On Dec 23, 2019, at 6:26 PM, Carlos Rovira <
>>>> carlosrov...@apache.org <mailto:carlosrov...@apache.org>
>>>>>> <mailto:carlosrov...@apache.org <mailto:carlosrov...@apache.org>>>
>>>>>>>>>>> wrote:
>>>>>>>>>>>> 
>>>>>>>>>>>> Hi Harbs,
>>>>>>>>>>>> 
>>>>>>>>>>>> seems recent changes break Crux library
>>>>>>>>>>>> (commit: f50c9990a3190cf681364905525656984ab2e9c5 - Cleaned up
>>>>>>>>>>>> ElementWrapper and HTMLElementWrapper)
>>>>>>>>>>>> I'm trying to see what could be the problem. I suppose that is
>> the
>>>>>> change
>>>>>>>>>>>> of HTMLElementWrapper now extending ElementWrapper.
>>>>>>>>>>>> Tried to change one for the other in Crux library, but with no
>>>> luck
>>>>>>>>>>>> I'm using /examples/crux/CruxQuickStartBasic to test
>>>>>>>>>>>> Can you see what could be wrong?
>>>>>>>>>>>> Thanks
>>>>>>>>>>>> 
>>>>>>>>>>>> Carlos
>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>>>>>>>>> El dom., 22 dic. 2019 a las 17:24, Harbs (<
>> harbs.li...@gmail.com
>>>> <mailto:harbs.li...@gmail.com>
>>>>>> <mailto:harbs.li...@gmail.com <mailto:harbs.li...@gmail.com>>>)
>>>>>>>>>>> escribió:
>>>>>>>>>>>> 
>>>>>>>>>>>>>> There is lots of what looks like shared code, so could
>>>>>>>>>>>>> HTMLElementWrapper extend ElementWrapper?
>>>>>>>>>>>>> 
>>>>>>>>>>>>> Totally. Excellent idea.
>>>>>>>>>>>>> 
>>>>>>>>>>>>>> On Dec 22, 2019, at 5:46 PM, Alex Harui
>>>> <aha...@adobe.com.INVALID <mailto:aha...@adobe.com.INVALID>
>>>>>> <mailto:aha...@adobe.com.INVALID <mailto:aha...@adobe.com.INVALID>>>
>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> In a quick look at history, HTMLElementWrapper's override
>> logic
>>>>>> was the
>>>>>>>>>>>>> same as ElementWrapper's.
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> Maybe as you upgraded HTMLElementWrapper's logic,
>> ElementWrapper
>>>>>> should
>>>>>>>>>>>>> have changed as well but didn't?
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> There is lots of what looks like shared code, so could
>>>>>>>>>>>>> HTMLElementWrapper extend ElementWrapper?
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> My 2 cents,
>>>>>>>>>>>>>> -Alex
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> On 12/22/19, 1:00 AM, "Harbs" <harbs.li...@gmail.com
>> <mailto:
>>>> harbs.li...@gmail.com> <mailto:
>>>>>> harbs.li...@gmail.com <mailto:harbs.li...@gmail.com>>> wrote:
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> We found a weird bug with events and currentTarget.
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> I traced the problem to the following:
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> The app loads both HTMLElementWrapper and ElementWrapper. The
>>>>>> lstener
>>>>>>>>>>>>> overrides in the two are stepping on each other. Here’s what
>>>>>> happens:
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> 1. HTMLElementWrapper is loaded first. It replaces
>>>>>>>>>>>>> goog.events.fireListener with its fireListenerOverride function
>>>>>> (which
>>>>>>>>>>>>> calls the existing one when it’s done).
>>>>>>>>>>>>>> 2. ElementWrapper is loaded next and it replaces the existing
>>>>>>>>>>>>> goog.events.fireListener function — which was already changed
>> to
>>>>>> point
>>>>>>>>>>> to
>>>>>>>>>>>>> HTMLElementWrapper.fireListenerOverride with the one from
>>>>>>>>>>> ElementWrapper.
>>>>>>>>>>>>>> 3. When an event is actually dispatched,
>>>>>>>>>>>>> ElementWrapper.fireListenerOverride first changes the event to
>> a
>>>>>> royale
>>>>>>>>>>>>> BrowserEvent instead of a goog one.
>>>>>>>>>>> HTMLElementWrapper.fireListenerOverride
>>>>>>>>>>>>> is then called and where it expects a goog BrowserEvent, it in
>>>> fact
>>>>>>>>>>> gets a
>>>>>>>>>>>>> royale BrowserEvent. This causes the wrappedEvent to be the
>> wrong
>>>>>> type
>>>>>>>>>>> and
>>>>>>>>>>>>> messes things up down the line.
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> I’m not sure of the best way to fix this.
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> * We could check the event type in
>>>>>> HTMLElementWrapper/ElementWrapper,
>>>>>>>>>>>>> but that’s just-in-case code.
>>>>>>>>>>>>>> * I’m not completely sure why we need this logic in both
>>>>>>>>>>>>> ElementWrapper and HTMLElementWrapper. Is there something that
>>>> can
>>>>>> be
>>>>>>>>>>>>> changed there?
>>>>>>>>>>>>>> * Maybe there’s some way for ElementWrapper to know that some
>>>>>> other
>>>>>>>>>>>>> class is installing an override?
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> Thoughts?
>>>>>>>>>>>>>> Harbs
>>>>>>>>>>>>>> 
>>>>>>>>>>>>> 
>>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>>>>>>>>> --
>>>>>>>>>>>> Carlos Rovira
>>>>>>>>>>>> http://about.me/carlosrovira <http://about.me/carlosrovira> <
>>>> http://about.me/carlosrovira <http://about.me/carlosrovira>>
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> --
>>>>>>>>>> Carlos Rovira
>>>>>>>>>> http://about.me/carlosrovira <http://about.me/carlosrovira> <
>>>> http://about.me/carlosrovira <http://about.me/carlosrovira>>
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>>> 
>>>>> 
>>>>> --
>>>>> 
>>>>> Piotr Zarzycki
>>>>> 
>>>>> Patreon: *https://www.patreon.com/piotrzarzycki <
>>>> https://www.patreon.com/piotrzarzycki>
>>>>> <https://www.patreon.com/piotrzarzycki <
>>>> https://www.patreon.com/piotrzarzycki>>*
>>>> 
>>>> 
>> 
>> 

Reply via email to