[squeak-dev] Re: regular Browser still messing the lowerPane

nice ncellier at ifrance.com
Fri Apr 11 22:55:22 UTC 2008


nice wrote:
> Ah, i thought i got a solution applying mantis patch for 
> DependentsArray, but no, it still bugs from time to time.
> After some time, the code pane does not occupy the whole window,and/or 
> overlaps with class comments...
> 
> The problem is located in the method below. Sometimes, no AlignmentMorph 
> will have a layoutFrame bottomFraction = 1.
> Consequence is that the #browserLowerPane property is then missing, what 
> you can observe by exploring the BrowserCommentTextMorph in the 
> dependents of a broken Browser.
> 
> If someone want to help tracking, simply add following halt:
> 
> 
> BrowserCommentTextMorph>>noteNewOwner: win
>     super noteNewOwner: win.
>     self setProperty: #browserWindow toValue: win.
>     win ifNil: [ ^self ].
>     win setProperty: #browserClassCommentPane toValue: self.
>     self setProperty: #browserLowerPane toValue: (win submorphThat: [ :m 
> | m isAlignmentMorph and: [ m layoutFrame bottomFraction = 1 ]] ifNone: [
>         self halt: 'DEBUG ME, I JUST LOST MY LOWER PANE'. nil]).
> 
> 
> Of course, since I added the halt, the bug refused to show up!
> 

Ah got a reliable way to reproduce it!

Select a class so as to show the class comment, collapse the browser, 
expand it, et voila, the halt is encountered...

In SystemWindow>>collapseOrExpand, self addMorph: ...

I suspect (self world startSteppingSubmorphsOf: m) is triggering a 
layout inquiry, and this inquiry is messing the morph layout before all 
sub morphs had a chance to regenerate...

Only a guess...

Nicolas




More information about the Squeak-dev mailing list