pharo-graphics / Toplo

A widget framework on top of Bloc
MIT License
17 stars 8 forks source link

Error: A ToSkinManager has an invalid state #90

Open labordep opened 5 months ago

labordep commented 5 months ago

Same context as #89. But whitout resize. I'm using Tabs (open/close/open/close) a lot of time, and after I'm opening my application in Pyramid (F12 shortcut) and I have an error:

image

The stack:

ToSkinManager>>applySkinInstallerIn:
ToListElement(BlElement)>>applySkinInstaller
ToListElement(BlElement)>>applySkinInstallerRecursively
[ :child | child applySkinInstallerRecursively ] in MyAppPanel(BlElement)>>applySkinInstallerRecursively in Block: [ :child | child applySkinInstallerRecursively ]
Array(SequenceableCollection)>>do:
BlChildrenArray>>do:
MyAppPanel(BlElement)>>childrenDo:
MyAppPanel(BlElement)>>applySkinInstallerRecursively
[ :child | child applySkinInstallerRecursively ] in ToPane(BlElement)>>applySkinInstallerRecursively in Block: [ :child | child applySkinInstallerRecursively ]
Array(SequenceableCollection)>>do:
BlChildrenArray>>do:
ToPane(BlElement)>>childrenDo:
ToPane(BlElement)>>applySkinInstallerRecursively
[ :child | child applySkinInstallerRecursively ] in ToPane(BlElement)>>applySkinInstallerRecursively in Block: [ :child | child applySkinInstallerRecursively ]
Array(SequenceableCollection)>>do:
BlChildrenArray>>do:
ToPane(BlElement)>>childrenDo:
ToPane(BlElement)>>applySkinInstallerRecursively
[ :child | child applySkinInstallerRecursively ] in ToTabPane(BlElement)>>applySkinInstallerRecursively in Block: [ :child | child applySkinInstallerRecursively ]
Array(SequenceableCollection)>>do:
BlChildrenArray>>do:
ToTabPane(BlElement)>>childrenDo:
ToTabPane(BlElement)>>applySkinInstallerRecursively
[ :child | child applySkinInstallerRecursively ] in MyAppPanel2(BlElement)>>applySkinInstallerRecursively in Block: [ :child | child applySkinInstallerRecursively ]
Array(SequenceableCollection)>>do:
BlChildrenArray>>do:
MyAppPanel2(BlElement)>>childrenDo:
MyAppPanel2(BlElement)>>applySkinInstallerRecursively
[ :child | child applySkinInstallerRecursively ] in BlElement>>applySkinInstallerRecursively in Block: [ :child | child applySkinInstallerRecursively ]
Array(SequenceableCollection)>>do:
BlChildrenArray>>do:
BlElement>>childrenDo:
BlElement>>applySkinInstallerRecursively
[ :child | child applySkinInstallerRecursively ] in BlElement>>applySkinInstallerRecursively in Block: [ :child | child applySkinInstallerRecursively ]
Array(SequenceableCollection)>>do:
BlChildrenArray>>do:
BlElement>>childrenDo:
BlElement>>applySkinInstallerRecursively
[ :child | child applySkinInstallerRecursively ] in BlElement>>applySkinInstallerRecursively in Block: [ :child | child applySkinInstallerRecursively ]
Array(SequenceableCollection)>>do:
BlChildrenArray>>do:
BlElement>>childrenDo:
BlElement>>applySkinInstallerRecursively
[ :child | child applySkinInstallerRecursively ] in BlElement>>applySkinInstallerRecursively in Block: [ :child | child applySkinInstallerRecursively ]
Array(SequenceableCollection)>>do:
BlChildrenArray>>do:
BlElement>>childrenDo:
BlElement>>applySkinInstallerRecursively
[ :child | child applySkinInstallerRecursively ] in BlElement>>applySkinInstallerRecursively in Block: [ :child | child applySkinInstallerRecursively ]
Array(SequenceableCollection)>>do:
BlChildrenArray>>do:
BlElement>>childrenDo:
BlElement>>applySkinInstallerRecursively
[ :child | child applySkinInstallerRecursively ] in BlElement>>applySkinInstallerRecursively in Block: [ :child | child applySkinInstallerRecursively ]
Array(SequenceableCollection)>>do:
BlChildrenArray>>do:
BlElement>>childrenDo:
BlElement>>applySkinInstallerRecursively
ToSpaceSkinPhasesManager>>applyAllSkinInstallersIn:
BlSpace>>applyAllSkinInstallers
ToSpaceSkinInstallerPhase>>runOn:
BlSpaceFrame>>runCurrentPhaseOn:
BlSpaceFrame>>runOn:
BlSpace>>processPulse
BlSpace>>pulse
[ :eachSpace | eachSpace pulse ] in [
        self tryToRunDeferredActions.
        spaceManager do: [ :eachSpace | eachSpace pulse ]
    ] in BlParallelUniverse>>pulseSynchronously in Block: [ :eachSpace | eachSpace pulse ]
Array(SequenceableCollection)>>do:
BlSpaceManager>>do:
[
        self tryToRunDeferredActions.
        spaceManager do: [ :eachSpace | eachSpace pulse ]
    ] in BlParallelUniverse>>pulseSynchronously in Block: [...
FullBlockClosure(BlockClosure)>>ensure:
BlParallelUniverse>>pulseSynchronously
[ self pulseSynchronously ] in BlParallelUniverse>>pulse in Block: [ self pulseSynchronously ]
FullBlockClosure(BlockClosure)>>ensure:
BlParallelUniverse>>pulse
BlMorphicHost class(BlMorphicSteppingHost class)>>step
StepMessage(MessageSend)>>value
StepMessage(MorphicAlarm)>>value:
WorldState>>runLocalStepMethodsIn:
WorldState>>runStepMethodsIn:
WorldMorph>>runStepMethods
WorldState>>doOneCycleFor:
WorldMorph>>doOneCycleNow
WorldMorph>>doOneCycle
[
        | extraWorldsToDraw |
        extraWorldsToDraw := ExtraWorldListMutex critical: [
                                 self extraWorldList ].
        extraWorldsToDraw do: [ :world | world doOneCycle ].

        (self currentWorld isNotNil and: [
             (extraWorldsToDraw includes: self currentWorld) not ]) ifTrue: [
            self currentWorld doOneCycle ] ] in WorldMorph class>>doOneCycle in Block: [...
FullBlockClosure(BlockClosure)>>ensure:
WorldState class>>doDrawCycleWith:
WorldMorph class>>doOneCycle
MorphicRenderLoop>>doOneCycle
MorphicRenderLoop>>doOneCycleWhile:
[ MorphicRenderLoop new doOneCycleWhile: [ true ] ] in MorphicUIManager>>spawnNewProcess in Block: [ MorphicRenderLoop new doOneCycleWhile: [ tru[..]
[self value.
            "IMPORTANT: Do not step over next line of code. See method comments for details"
            Processor terminateRealActive] in FullBlockClosure(BlockClosure)>>newProcess in Block: [self value....
plantec commented 4 months ago

is it still the case with the new toplo versions ?