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