<div dir="ltr">Well, this was the simplest fix.<div>When the number of collapsed windows overflowed the screen vertical space the algorithm gave up and piled them at 0@0.</div><div>Now they pile up 20 pixels down instead.</div>
<div><br></div><div>Feel free to enhance further :-)</div><div><br></div><div>Karl</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Sat, Jul 19, 2014 at 6:25 PM, Chris Muller <span dir="ltr">&lt;<a href="mailto:asqueaker@gmail.com" target="_blank">asqueaker@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">It&#39;s very easy for there to be no Docking Bar.  <div><br></div><div>It&#39;s very easy for the Docking Bar to be higher than 20 pixels.</div>
<div><div><br></div></div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><br>
<div class="gmail_quote">On Sat, Jul 19, 2014 at 5:08 AM,  <span dir="ltr">&lt;<a href="mailto:commits@source.squeak.org" target="_blank">commits@source.squeak.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

Karl Ramberg uploaded a new version of System to project The Trunk:<br>
<a href="http://source.squeak.org/trunk/System-kfr.677.mcz" target="_blank">http://source.squeak.org/trunk/System-kfr.677.mcz</a><br>
<br>
==================== Summary ====================<br>
<br>
Name: System-kfr.677<br>
Author: kfr<br>
Time: 19 July 2014, 11:59:39.569 am<br>
UUID: 433661e2-5f76-1f4b-9498-39bf61ed6bd0<br>
Ancestors: System-eem.676<br>
<br>
Don&#39;t put collapsed windows behind the docking bar.<br>
<br>
=============== Diff against System-eem.676 ===============<br>
<br>
Item was changed:<br>
  ----- Method: RealEstateAgent class&gt;&gt;assignCollapseFrameFor: (in category &#39;utilities&#39;) -----<br>
  assignCollapseFrameFor: aSSView<br>
        &quot;Offer up a location along the left edge of the screen for a collapsed SSView. Make sure it doesn&#39;t overlap any other collapsed frames.&quot;<br>
<br>
        | grid otherFrames topLeft viewBox collapsedFrame extent newFrame verticalBorderDistance top |<br>
        grid := 8.<br>
        verticalBorderDistance := 8.<br>
        aSSView isMorph<br>
                ifTrue: [otherFrames := (SystemWindow windowsIn: aSSView world satisfying: [:w | w ~= aSSView])<br>
                                                collect: [:w | w collapsedFrame]<br>
                                                thenSelect: [:rect | rect notNil].<br>
                                viewBox := self maximumUsableAreaInWorld: aSSView world]<br>
                ifFalse: [otherFrames := ScheduledControllers scheduledWindowControllers<br>
                                                collect: [:aController | aController view ~= aSSView ifTrue: [aController view collapsedFrame]]<br>
                                                thenSelect: [:rect | rect notNil].<br>
                                viewBox := Display boundingBox].<br>
        collapsedFrame := aSSView collapsedFrame.<br>
        extent := collapsedFrame notNil<br>
                                ifTrue: [collapsedFrame extent]<br>
                                ifFalse: [aSSView isMorph<br>
                                        ifTrue: [aSSView getRawLabel width + aSSView labelWidgetAllowance @ (aSSView labelHeight + 2)]<br>
                                        ifFalse: [(aSSView labelText extent x + 70) @ aSSView labelHeight<br>
                                                        min: aSSView labelDisplayBox extent]].<br>
        collapsedFrame notNil<br>
                ifTrue: [(otherFrames anySatisfy: [:f | collapsedFrame intersects: f])<br>
                                ifFalse: [&quot;non overlapping&quot;<br>
                                        ^ collapsedFrame]].<br>
        top := viewBox top + verticalBorderDistance.<br>
        [topLeft := viewBox left @ top.<br>
        newFrame := topLeft extent: extent.<br>
        newFrame bottom &lt;= (viewBox height - verticalBorderDistance)]<br>
                whileTrue:<br>
                        [(otherFrames anySatisfy: [:w | newFrame intersects: w])<br>
                                ifFalse: [&quot;no overlap&quot;<br>
                                        ^ newFrame].<br>
                        top := top + grid].<br>
        &quot;If all else fails... (really to many wins here)&quot;<br>
+       ^ 0 @ 20 extent: extent!<br>
-       ^ 0 @ 0 extent: extent!<br>
<br>
<br>
</blockquote></div><br></div>
</div></div><br><br>
<br></blockquote></div><br></div>