haxeui / haxeui-heaps

MIT License
31 stars 12 forks source link

The validation queue returned too many times during validation #8

Closed hoseyjoe closed 2 years ago

hoseyjoe commented 4 years ago

Once application launches click the "Click Me!" button top left. If you put this on html target it works. if you HL target you get the below error. Sometimes it works the first click but never on second click

The validation queue returned too many times during validation. This may be an infinite loop. Try to avoid doing anything that calls invalidate() during validation.

Called from haxe.ui.core.ComponentValidation.invalidateComponent (haxe/ui/core/ComponentValidation.hx line 96)
Called from haxe.ui.core.TextInput.invalidateComponent (haxe/ui/core/TextInput.hx line 290)
Called from haxe.ui.core.TextInput.set_width (haxe/ui/core/TextInput.hx line 144)
Called from haxe.ui.components._TextArea.TextAreaLayout.resizeChildren (haxe/ui/components/TextArea.hx line 110)
Called from haxe.ui.layouts.Layout.refresh (haxe/ui/layouts/Layout.hx line 35)
Called from haxe.ui.core.Component.validateComponentLayout (haxe/ui/core/Component.hx line 1327)
Called from haxe.ui.core.ComponentValidation.validateComponentInternal (haxe/ui/core/ComponentValidation.hx line 258)
Called from haxe.ui.components.TextArea.validateComponentInternal (haxe/ui/components/TextArea.hx line 54)
Called from haxe.ui.core.ComponentValidation.validateComponent (haxe/ui/core/ComponentValidation.hx line 176)
Called from haxe.ui.validation.ValidationManager.process (haxe/ui/validation/ValidationManager.hx line 125)
Called from haxe.ui.util.$Timer.~delay.1 (haxe/ui/util/Timer.hx line 10)
Called from haxe.ui.backend.$TimerImpl.update (haxe/ui/backend/TimerImpl.hx line 12)
Called from haxe.ui.backend.$BackendImpl.update (haxe/ui/backend/BackendImpl.hx line 7)
Called from haxe.ui.backend.AppImpl.onHeapsUpdate (haxe/ui/backend/AppImpl.hx line 40)
Called from haxe.ui.backend._AppImpl.HeapsApp.update (haxe/ui/backend/AppImpl.hx line 16)
Called from hxd.App.mainLoop (hxd/App.hx line 187)
Called from hxd.$System.mainLoop (hxd/System.hl.hx line 70)
Called from hxd.$System.runMainLoop (hxd/System.hl.hx line 135)
Called from hxd.$System.runMainLoop (hxd/System.hl.hx line 132)
Called from haxe.$Timer.~delay.0 (C:\SDKs\Haxe\haxe\std/haxe/Timer.hx line 143)
Called from haxe.$Timer.~__constructor__.0 (C:\SDKs\Haxe\haxe\std/haxe/Timer.hx line 76)
Called from haxe.$MainLoop.tick (C:\SDKs\Haxe\haxe\std/haxe/MainLoop.hx line 174)
Called from haxe.$EntryPoint.processEvents (C:\SDKs\Haxe\haxe\std/haxe/EntryPoint.hx line 99)
Called from haxe.$EntryPoint.run (C:\SDKs\Haxe\haxe\std/haxe/EntryPoint.hx line 125)

HaxeUITest.zip

ianharrigan commented 4 years ago

Can we try this again with latest "everything"? I cant seem to get it to break (am i clicking the right button?)

heaps-anim

hoseyjoe commented 4 years ago

Oops sorry. I uploaded with later changes. It worked because of line 121, 124
minFrame.directives = [clear, noWidth];
maxFrame.directives = [opaque, maxWidth];

I was trying to have 2 directives. I wanted it to shrink and fade out, grow and fade in. Change those 2 lines to
minFrame.directives = [ noWidth];
maxFrame.directives = [ maxWidth];
You will then see the error. For some reason when I have both directives only the fade worked.

Attached project with those lines changed so you can see the error HaxeUITest.zip

Can you have 2 directives? The code to use multiple directives seems fine but that didnt seem to work

hoseyjoe commented 4 years ago

The issue is with the textarea. Comment that out and it works. Something to do with width

hoseyjoe commented 2 years ago

IDk on this one. I tried repeating from projects and...idk