<div dir="ltr">Yes, apologies.<br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Le lun. 17 févr. 2020 à 17:19, Thiede, Christoph <<a href="mailto:Christoph.Thiede@student.hpi.uni-potsdam.de">Christoph.Thiede@student.hpi.uni-potsdam.de</a>> a écrit :<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">




<div dir="ltr">
<div id="gmail-m_6493367463672502928divtagdefaultwrapper" style="font-size:12pt;color:rgb(0,0,0);font-family:Calibri,Helvetica,sans-serif" dir="ltr">
<div id="gmail-m_6493367463672502928divtagdefaultwrapper" dir="ltr" style="font-size:12pt;color:rgb(0,0,0);font-family:Calibri,Helvetica,sans-serif,EmojiFont,"Apple Color Emoji","Segoe UI Emoji",NotoColorEmoji,"Segoe UI Symbol","Android Emoji",EmojiSymbols">
<p>Is this the reason why I cannot open Browsers any longer?</p>
<p><br>
</p>
<p><img size="46687" id="gmail-m_6493367463672502928img621926" style="max-width: 99.9%;" src="cid:17053f1b9a5f456b1e51"><br>
</p>
<div id="gmail-m_6493367463672502928Signature">
<div id="gmail-m_6493367463672502928divtagdefaultwrapper" dir="ltr" style="font-size:12pt;color:rgb(0,0,0);font-family:Calibri,Helvetica,sans-serif,EmojiFont,"Apple Color Emoji","Segoe UI Emoji",NotoColorEmoji,"Segoe UI Symbol","Android Emoji",EmojiSymbols">
<div name="divtagdefaultwrapper">
<div>
<div id="gmail-m_6493367463672502928Item.MessagePartBody">
<div id="gmail-m_6493367463672502928Item.MessageUniqueBody" style="font-family:wf_segoe-ui_normal,"Segoe UI","Segoe WP",Tahoma,Arial,sans-serif,serif,EmojiFont">
<div dir="ltr">
<div id="gmail-m_6493367463672502928divtagdefaultwrapper"><font face="Calibri,Helvetica,sans-serif,EmojiFont,Apple Color Emoji,Segoe UI Emoji,NotoColorEmoji,Segoe UI Symbol,Android Emoji,EmojiSymbols">
<div id="gmail-m_6493367463672502928Signature">
<div style="margin:0px"><font style="font-family:Calibri,Arial,Helvetica,sans-serif,serif,EmojiFont">
<div><font size="3" color="black"><span style="font-size:12pt"><a href="http://www.hpi.de/" rel="noopener noreferrer" id="gmail-m_6493367463672502928LPNoLP" target="_blank"><font size="2"><span id="gmail-m_6493367463672502928LPlnk909538"><font color="#757B80"></font></span></font></a></span></font></div>
</font></div>
</div>
</font></div>
</div>
</div>
</div>
</div>
<div><font size="2" color="#808080"></font></div>
</div>
</div>
</div>
</div>
<hr style="display:inline-block;width:98%">
<div id="gmail-m_6493367463672502928divRplyFwdMsg" dir="ltr"><font style="font-size:11pt" face="Calibri, sans-serif" color="#000000"><b>Von:</b> Squeak-dev <<a href="mailto:squeak-dev-bounces@lists.squeakfoundation.org" target="_blank">squeak-dev-bounces@lists.squeakfoundation.org</a>> im Auftrag von Nicolas Cellier <<a href="mailto:nicolas.cellier.aka.nice@gmail.com" target="_blank">nicolas.cellier.aka.nice@gmail.com</a>><br>
<b>Gesendet:</b> Montag, 17. Februar 2020 17:16:04<br>
<b>An:</b> The general-purpose Squeak developers list<br>
<b>Betreff:</b> Re: [squeak-dev] The Trunk: Morphic-nice.1625.mcz</font>
<div> </div>
</div>
<div>
<div dir="ltr">
<div>Oups, sorry, this was for inbox!</div>
<div>Let me repair that if I can...<br>
</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">Le lun. 17 févr. 2020 à 17:07, <<a href="mailto:commits@source.squeak.org" target="_blank">commits@source.squeak.org</a>> a écrit :<br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
Nicolas Cellier uploaded a new version of Morphic to project The Trunk:<br>
<a href="http://source.squeak.org/trunk/Morphic-nice.1625.mcz" rel="noreferrer" target="_blank">http://source.squeak.org/trunk/Morphic-nice.1625.mcz</a><br>
<br>
==================== Summary ====================<br>
<br>
Name: Morphic-nice.1625<br>
Author: nice<br>
Time: 17 February 2020, 5:06:10.606532 pm<br>
UUID: 094e2566-ddfe-2340-8fab-2338d255e164<br>
Ancestors: Morphic-mt.1624<br>
<br>
Free our mind from un-initialized LayoutFrame. There should not be any such thing.<br>
<br>
Require Graphics-nice.425<br>
<br>
=============== Diff against Morphic-mt.1624 ===============<br>
<br>
Item was changed:<br>
  ----- Method: BorderedMorph>>addMorph:fullFrame: (in category 'resize handling') -----<br>
  addMorph: aMorph fullFrame: aLayoutFrame<br>
        "Add aMorph according to aLayoutFrame."<br>
<br>
        self cellGap > 0 ifTrue: [<br>
                | left right bottom top spacing |<br>
<br>
                spacing := self cellGap.<br>
+               left := aLayoutFrame leftOffset.<br>
+               right := aLayoutFrame rightOffset.<br>
-               left := aLayoutFrame leftOffset ifNil: [0].<br>
-               right := aLayoutFrame rightOffset ifNil: [0].<br>
<br>
+               bottom := aLayoutFrame bottomOffset.<br>
+               top := aLayoutFrame topOffset.<br>
-               bottom := aLayoutFrame bottomOffset ifNil: [0].<br>
-               top := aLayoutFrame topOffset ifNil: [0].<br>
<br>
                "Add a spacing to the frame if it is not top or leftmost."<br>
                aLayoutFrame leftFraction = 0<br>
                        ifFalse: [left := left + spacing]<br>
                        ifTrue: [<br>
                                "Expect another, resizable widget besides me if I have a fixed width."<br>
                                aLayoutFrame hasFixedWidth ifTrue: [right := right - spacing]].<br>
                aLayoutFrame topFraction = 0<br>
                        ifFalse: [top := top + spacing]<br>
                        ifTrue: [<br>
                                "Expect another, resizable widget besides me if I have a fixed height."<br>
                                aLayoutFrame hasFixedHeight ifTrue: [bottom := bottom - spacing]].<br>
<br>
                aLayoutFrame<br>
                        topOffset: top;<br>
                        bottomOffset: bottom;<br>
                        leftOffset: left;<br>
                        rightOffset: right].<br>
<br>
        super addMorph: aMorph fullFrame: aLayoutFrame.<br>
<br>
        self wantsPaneSplitters ifTrue: [self addPaneSplitters].!<br>
<br>
Item was changed:<br>
  ----- Method: BorderedMorph>>addPaneHSplitterAtBottomOfRow: (in category 'resize handling') -----<br>
  addPaneHSplitterAtBottomOfRow: someMorphs<br>
<br>
        | targetY minX maxX splitter |<br>
        targetY := someMorphs first layoutFrame bottomFraction.<br>
<br>
        minX := (someMorphs detectMin: [:each | each layoutFrame leftFraction]) layoutFrame leftFraction.<br>
        maxX := (someMorphs detectMax: [:each | each layoutFrame rightFraction]) layoutFrame rightFraction.<br>
<br>
        splitter := ProportionalSplitterMorph new beSplitsTopAndBottom; yourself.<br>
        splitter layoutFrame: (LayoutFrame<br>
                fractions: (minX @ targetY corner: maxX @ targetY)<br>
+               offsets: (someMorphs first layoutFrame leftOffset @ 0 <br>
+                       corner: someMorphs first layoutFrame rightOffset @ AbstractResizerMorph gripThickness)).<br>
-               offsets: ((someMorphs first layoutFrame leftOffset ifNil: [0]) @ 0
<br>
-                       corner: (someMorphs first layoutFrame rightOffset ifNil: [0]) @ AbstractResizerMorph gripThickness)).<br>
<br>
        self addMorphBack: (splitter position: self position).!<br>
<br>
Item was changed:<br>
  ----- Method: BorderedMorph>>addPaneVSplitterAtRightOfColumn: (in category 'resize handling') -----<br>
  addPaneVSplitterAtRightOfColumn: someMorphs<br>
<br>
        | targetX minY maxY splitter |<br>
        targetX := someMorphs first layoutFrame rightFraction.<br>
<br>
        minY := (someMorphs detectMin: [:each | each layoutFrame topFraction]) layoutFrame topFraction.<br>
        maxY := (someMorphs detectMax: [:each | each layoutFrame bottomFraction]) layoutFrame bottomFraction.<br>
<br>
        splitter := ProportionalSplitterMorph new beSplitsLeftAndRight; yourself.<br>
        splitter layoutFrame: (LayoutFrame<br>
                fractions: (targetX @ minY corner: targetX @ maxY)<br>
+               offsets: (0 @ (someMorphs first layoutFrame topOffset)<br>
+                       corner: (AbstractResizerMorph gripThickness@ (someMorphs first layoutFrame bottomOffset)))).<br>
-               offsets: (0 @ (someMorphs first layoutFrame topOffset ifNil: [0])<br>
-                       corner: (AbstractResizerMorph gripThickness@ (someMorphs first layoutFrame bottomOffset ifNil: [0])))).<br>
<br>
        self addMorphBack: (splitter position: self position).!<br>
<br>
Item was changed:<br>
  ----- Method: BorderedMorph>>linkSubmorphsToSplitters (in category 'resize handling') -----<br>
  linkSubmorphsToSplitters<br>
<br>
        self splitters do: [:splitter |<br>
                splitter splitsTopAndBottom ifTrue: [<br>
                        self submorphsDo: [:morph |<br>
                                        ((morph ~= splitter<br>
                                                and: [morph layoutFrame bottomFraction = splitter layoutFrame topFraction])<br>
                                                and: [morph layoutFrame hasFixedHeight not<br>
+                                                       or: [(morph layoutFrame topOffset) < 0]])<br>
-                                                       or: [(morph layoutFrame topOffset ifNil: [0]) < 0]])<br>
                                                                ifTrue: [splitter addLeftOrTop: morph].<br>
                                        ((morph ~= splitter<br>
                                                and: [morph layoutFrame topFraction = splitter layoutFrame bottomFraction])<br>
                                                and: [morph layoutFrame hasFixedHeight not<br>
+                                                       or: [(morph layoutFrame bottomOffset) > 0]])<br>
-                                                       or: [(morph layoutFrame bottomOffset ifNil: [0]) > 0]])<br>
                                                                ifTrue: [splitter addRightOrBottom: morph]]].<br>
                splitter splitsLeftAndRight ifTrue: [<br>
                        self submorphsDo: [:morph |<br>
                                        ((morph ~= splitter<br>
                                                and: [morph layoutFrame rightFraction = splitter layoutFrame leftFraction])<br>
                                                and: [morph layoutFrame hasFixedWidth not<br>
+                                                       or: [(morph layoutFrame leftOffset) < 0]])<br>
-                                                       or: [(morph layoutFrame leftOffset ifNil: [0]) < 0]])<br>
                                                                ifTrue: [splitter addLeftOrTop: morph].<br>
                                        ((morph ~= splitter <br>
                                                and: [morph layoutFrame leftFraction = splitter layoutFrame rightFraction])<br>
                                                and: [morph layoutFrame hasFixedWidth not<br>
+                                                       or: [(morph layoutFrame rightOffset) > 0]])<br>
-                                                       or: [(morph layoutFrame rightOffset ifNil: [0]) > 0]])<br>
                                                                ifTrue: [splitter addRightOrBottom: morph]]]]!<br>
<br>
Item was changed:<br>
  ----- Method: ProportionalSplitterMorph>>balanceOffsets (in category 'events') -----<br>
  balanceOffsets<br>
<br>
        | fdx fdy |<br>
<br>
        (self hasProperty: #fullDelta) ifFalse: [^ self].<br>
<br>
        fdx := (self valueOfProperty: #fullDelta) x.<br>
        fdy := (self valueOfProperty: #fullDelta) y.<br>
<br>
        self layoutFrame hasFixedHeight ifTrue: [<br>
                | otop obot ctop cbot topf |<br>
<br>
                otop := (owner submorphs detect: [:m | <br>
                                        m layoutFrame topFraction isZero] ifNone: [^ self]) in: [:tm |
<br>
+                                               tm top - (tm layoutFrame topOffset)].<br>
-                                               tm top - (tm layoutFrame topOffset ifNil: [0])].<br>
<br>
                obot := (owner submorphs detect: [:m | <br>
                                        m layoutFrame bottomFraction = 1] ifNone: [^ self]) in: [:tm |
<br>
+                                               tm bottom - (tm layoutFrame bottomOffset)].<br>
-                                               tm bottom - (tm layoutFrame bottomOffset ifNil: [0])].<br>
<br>
                ctop := (self layoutFrame topFraction * (obot - otop)) rounded <br>
+                                       + otop + (self layoutFrame topOffset).<br>
-                                       + otop + (self layoutFrame topOffset ifNil: [0]).<br>
                cbot := (self layoutFrame bottomFraction * (obot - otop)) rounded
<br>
+                                       + otop + (self layoutFrame bottomOffset).<br>
-                                       + otop + (self layoutFrame bottomOffset ifNil: [0]).<br>
<br>
                topf := self layoutFrame topFraction.<br>
                self layoutFrame topFraction:  ((ctop + cbot) * 0.5 - otop) / (obot - otop) asFloat.<br>
                self layoutFrame bottomFraction: self layoutFrame topFraction.<br>
                self layoutFrame topOffset: self layoutFrame topOffset - fdy.<br>
                self layoutFrame bottomOffset: self layoutFrame bottomOffset - fdy.<br>
<br>
                (leftOrTop copy union: rightOrBottom) do: [:m |<br>
                        (m layoutFrame topFraction closeTo: topf) ifTrue: [<br>
                                m layoutFrame topFraction: self layoutFrame topFraction.<br>
                                m layoutFrame topOffset: m layoutFrame topOffset - fdy].<br>
                        (m layoutFrame bottomFraction closeTo: topf) ifTrue: [<br>
                                m layoutFrame bottomFraction: self layoutFrame topFraction.<br>
                                m layoutFrame bottomOffset: m layoutFrame bottomOffset - fdy]]] .<br>
<br>
        self layoutFrame hasFixedWidth ifTrue: [<br>
                | oleft oright cleft cright leftf |<br>
<br>
                oleft := (owner submorphs detect: [:m | <br>
                        m layoutFrame leftFraction isZero] ifNone: [^ self]) in: [:tm |
<br>
+                               tm left - (tm layoutFrame leftOffset)].<br>
-                               tm left - (tm layoutFrame leftOffset ifNil: [0])].<br>
<br>
                oright := (owner submorphs detect: [:m | <br>
                        m layoutFrame rightFraction = 1] ifNone: [^ self]) in: [:tm |
<br>
+                               tm right - (tm layoutFrame rightOffset)].<br>
-                               tm right - (tm layoutFrame rightOffset ifNil: [0])].<br>
<br>
                cleft := (self layoutFrame leftFraction * (oright - oleft)) rounded
<br>
+                                       + oleft + (self layoutFrame leftOffset).<br>
-                                       + oleft + (self layoutFrame leftOffset ifNil: [0]).<br>
                cright := (self layoutFrame rightFraction * (oright - oleft)) rounded
<br>
+                                       + oleft + (self layoutFrame rightOffset).<br>
-                                       + oleft + (self layoutFrame rightOffset ifNil: [0]).<br>
<br>
                leftf := self layoutFrame leftFraction.<br>
                self layoutFrame leftFraction: ((cleft + cright) * 0.5 - oleft) / (oright - oleft) asFloat.<br>
                self layoutFrame rightFraction: self layoutFrame leftFraction.<br>
<br>
<br>
                self layoutFrame leftOffset: self layoutFrame leftOffset - fdx.<br>
                self layoutFrame rightOffset: self layoutFrame rightOffset - fdx.<br>
<br>
                (leftOrTop copy union: rightOrBottom) do: [:m |<br>
                        (m layoutFrame leftFraction closeTo: leftf) ifTrue: [<br>
                                m layoutFrame leftFraction: self layoutFrame leftFraction.<br>
                                m layoutFrame leftOffset: m layoutFrame leftOffset - fdx].<br>
                        (m layoutFrame rightFraction closeTo: leftf) ifTrue: [<br>
                                m layoutFrame rightFraction: self layoutFrame leftFraction.<br>
                                m layoutFrame rightOffset:      m layoutFrame rightOffset - fdx.]]] .<br>
<br>
        self removeProperty: #fullDelta.<br>
        owner layoutChanged<br>
  !<br>
<br>
Item was changed:<br>
  ----- Method: ProportionalSplitterMorph>>repositionBy: (in category 'events') -----<br>
  repositionBy: delta<br>
        | selfTop selfBottom selfLeft selfRight |<br>
<br>
        self setProperty: #fullDelta toValue: ((self valueOfProperty: #fullDelta) ifNil: [0@0]) + delta.<br>
<br>
        leftOrTop do:<br>
                [ : each | | firstRight firstBottom firstLeft firstTop |<br>
+               firstRight := each layoutFrame rightOffset.<br>
+               firstBottom := each layoutFrame bottomOffset.<br>
-               firstRight := each layoutFrame rightOffset ifNil: [ 0 ].<br>
-               firstBottom := each layoutFrame bottomOffset ifNil: [ 0 ].<br>
                each layoutFrame rightOffset: firstRight + delta x.<br>
                each layoutFrame bottomOffset: firstBottom + delta y.<br>
                each layoutFrame hasFixedHeight ifTrue: [<br>
+                       firstTop := each layoutFrame topOffset.<br>
-                       firstTop := each layoutFrame topOffset ifNil: [ 0 ].<br>
                        each layoutFrame topOffset: firstTop + delta y ].<br>
                each layoutFrame hasFixedWidth ifTrue: [<br>
+                       firstLeft := each layoutFrame leftOffset.<br>
-                       firstLeft := each layoutFrame leftOffset ifNil: [ 0 ].<br>
                        each layoutFrame leftOffset: firstLeft + delta x. ] ].<br>
        rightOrBottom do:<br>
                [ : each | | secondLeft secondTop secondRight secondBottom |<br>
+               secondLeft := each layoutFrame leftOffset.<br>
+               secondTop := each layoutFrame topOffset.<br>
-               secondLeft := each layoutFrame leftOffset ifNil: [ 0 ].<br>
-               secondTop := each layoutFrame topOffset ifNil: [ 0 ].<br>
                each layoutFrame leftOffset: secondLeft + delta x.<br>
                each layoutFrame topOffset: secondTop + delta y.<br>
                each layoutFrame hasFixedHeight ifTrue: [<br>
+                       secondBottom := each layoutFrame bottomOffset.<br>
-                       secondBottom := each layoutFrame bottomOffset ifNil: [ 0 ].<br>
                        each layoutFrame bottomOffset: secondBottom + delta y. ].<br>
                each layoutFrame hasFixedWidth ifTrue: [<br>
+                       secondRight := each layoutFrame rightOffset.<br>
-                       secondRight := each layoutFrame rightOffset ifNil: [ 0 ].<br>
                        each layoutFrame rightOffset: secondRight + delta x. ] ].<br>
<br>
+       selfTop := self layoutFrame topOffset.<br>
+       selfBottom := self layoutFrame bottomOffset.<br>
+       selfLeft := self layoutFrame leftOffset.<br>
+       selfRight := self layoutFrame rightOffset.<br>
-       selfTop := self layoutFrame topOffset ifNil: [ 0 ].<br>
-       selfBottom := self layoutFrame bottomOffset ifNil: [ 0 ].<br>
-       selfLeft := self layoutFrame leftOffset ifNil: [ 0 ].<br>
-       selfRight := self layoutFrame rightOffset ifNil: [ 0 ].<br>
        self layoutFrame<br>
                 topOffset: selfTop + delta y ;<br>
                 bottomOffset: selfBottom + delta y ;<br>
                 leftOffset: selfLeft + delta x ;<br>
                 rightOffset: selfRight + delta x.<br>
        self owner layoutChanged.<br>
        self movements removeFirst; add: (splitsTopAndBottom ifTrue: [ delta y sign ] ifFalse: [ delta x sign ])!<br>
<br>
Item was changed:<br>
  ----- Method: SystemWindow>>convertAlignment (in category 'layout') -----<br>
  convertAlignment<br>
        "Primarily Jesse Welton's code to convert old system windows to ones with modern layout scheme"<br>
<br>
        self layoutPolicy: ProportionalLayout new.<br>
        (paneMorphs isNil <br>
                or: [paneRects isNil or: [paneMorphs size ~= paneRects size]]) <br>
                        ifFalse: <br>
                                [self addLabelArea.<br>
                                self putLabelItemsInLabelArea.<br>
                                self setFramesForLabelArea.<br>
                                paneMorphs with: paneRects<br>
                                        do: <br>
                                                [:m :r | <br>
                                                | frame |<br>
                                                frame := LayoutFrame new.<br>
                                                frame<br>
                                                        leftFraction: r left;<br>
                                                        rightFraction: r right;<br>
                                                        topFraction: r top;<br>
                                                        bottomFraction: r bottom.<br>
                                                m layoutFrame: frame.<br>
                                                m<br>
                                                        hResizing: #spaceFill;<br>
                                                        vResizing: #spaceFill]].<br>
        labelArea isNil <br>
                ifTrue: <br>
                        [self addLabelArea.<br>
                        self putLabelItemsInLabelArea.<br>
                        self setFramesForLabelArea.<br>
                        paneMorphs ifNotNil: <br>
                                        [paneMorphs do: <br>
                                                        [:m | <br>
                                                        | frame |<br>
                                                        frame := m layoutFrame ifNil: [LayoutFrame new].<br>
+                                                       frame topOffset: (frame topOffset) - self labelHeight.<br>
-                                                       frame topOffset: (frame topOffset ifNil: [0]) - self labelHeight.<br>
                                                        frame bottomFraction ~= 1.0
<br>
                                                                ifTrue: <br>
+                                                                       [frame bottomOffset: (frame bottomOffset) - self labelHeight]]]].<br>
-                                                                       [frame bottomOffset: (frame bottomOffset ifNil: [0]) - self labelHeight]]]].<br>
        label ifNotNil: <br>
                        [| frame |<br>
                        frame := LayoutFrame new.<br>
                        frame<br>
                                leftFraction: 0.5;<br>
                                topFraction: 0;<br>
                                leftOffset: label width negated // 2.<br>
                        label layoutFrame: frame].<br>
        collapseBox ifNotNil: <br>
                        [| frame |<br>
                        frame := LayoutFrame new.<br>
                        frame<br>
                                rightFraction: 1;<br>
                                topFraction: 0;<br>
                                rightOffset: -1;<br>
                                topOffset: 1.<br>
                        collapseBox layoutFrame: frame].<br>
        stripes ifNotNil: <br>
                        [| frame |<br>
                        frame := LayoutFrame new.<br>
                        frame<br>
                                leftFraction: 0;<br>
                                topFraction: 0;<br>
                                rightFraction: 1;<br>
                                leftOffset: 1;<br>
                                topOffset: 1;<br>
                                rightOffset: -1.<br>
                        stripes first layoutFrame: frame.<br>
                        stripes first height: self labelHeight - 2.<br>
                        stripes first hResizing: #spaceFill.<br>
                        frame := LayoutFrame new.<br>
                        frame<br>
                                leftFraction: 0;<br>
                                topFraction: 0;<br>
                                rightFraction: 1;<br>
                                leftOffset: 3;<br>
                                topOffset: 3;<br>
                                rightOffset: -3.<br>
                        stripes last layoutFrame: frame.<br>
                        stripes last height: self labelHeight - 6.<br>
                        stripes last hResizing: #spaceFill].<br>
        menuBox ifNotNil: <br>
                        [| frame |<br>
                        frame := LayoutFrame new.<br>
                        frame<br>
                                leftFraction: 0;<br>
                                leftOffset: 19;<br>
                                topFraction: 0;<br>
                                topOffset: 1.<br>
                        menuBox layoutFrame: frame].<br>
        closeBox ifNotNil: <br>
                        [| frame |<br>
                        frame := LayoutFrame new.<br>
                        frame<br>
                                leftFraction: 0;<br>
                                leftOffset: 4;<br>
                                topFraction: 0;<br>
                                topOffset: 1.<br>
                        closeBox layoutFrame: frame]!<br>
<br>
Item was changed:<br>
  ----- Method: SystemWindow>>setPaneRectsFromBounds (in category 'geometry') -----<br>
  setPaneRectsFromBounds<br>
        "Reset proportional specs from actual bounds, eg, after reframing panes"<br>
        | layoutBounds |<br>
        layoutBounds := self layoutBounds.<br>
        paneMorphs do:[:m| | box left bottom top frame right |<br>
                frame := m layoutFrame.<br>
                box := m bounds.<br>
                frame ifNotNil:[<br>
+                       left := box left - layoutBounds left - frame leftOffset.<br>
+                       right := box right - layoutBounds left - frame rightOffset.<br>
+                       top := box top - layoutBounds top - frame topOffset.<br>
+                       bottom := box bottom - layoutBounds top - frame bottomOffset.<br>
-                       left := box left - layoutBounds left - (frame leftOffset ifNil:[0]).<br>
-                       right := box right - layoutBounds left - (frame rightOffset ifNil:[0]).<br>
-                       top := box top - layoutBounds top - (frame topOffset ifNil:[0]).<br>
-                       bottom := box bottom - layoutBounds top - (frame bottomOffset ifNil:[0]).<br>
                        frame leftFraction: (left / layoutBounds width asFloat).<br>
                        frame rightFraction: (right / layoutBounds width asFloat).<br>
                        frame topFraction: (top / layoutBounds height asFloat).<br>
                        frame bottomFraction: (bottom / layoutBounds height asFloat).<br>
                ].<br>
        ].!<br>
<br>
<br>
</blockquote>
</div>
</div>
</div>
</div>

<br>
</blockquote></div>