<body><div id="__MailbirdStyleContent" style="font-size: 10pt;font-family: Arial;color: #000000">
                                        This is the bug (smart splitters disabled, left mouse click):<div><img id="a8fd4735-dfaf-4195-9854-8f9087ad8dbf" src="cid:7d6b94e3-7ee1-4df4-90b6-2938d9b209a9" width="auto"></img></div><div><br></div><div>Best,</div><div>Marcel</div><div class="mb_sig"></div><blockquote class="history_container" type="cite" style="border-left-style:solid;border-width:1px; margin-top:20px; margin-left:0px;padding-left:10px;">
                        <p style="color: #AAAAAA; margin-top: 10px;">Am 20.11.2019 05:40:59 schrieb Chris Muller <asqueaker@gmail.com>:</p><div style="font-family:Arial,Helvetica,sans-serif">
<div dir="ltr"><div dir="ltr">On Mon, Nov 18, 2019 at 2:20 AM Marcel Taeumel <<a href="mailto:marcel.taeumel@hpi.de">marcel.taeumel@hpi.de</a>> wrote:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div id="gmail-m_-326061020902486755__MailbirdStyleContent" style="font-size: 10pt;font-family: Arial;color: rgb(0,0,0)">
                                        
                                        
                                            
                                        
                                        
                                        Hi, there.<div><br></div><div>I cannot solve this issue at the moment.</div><div><br></div><div>Here is some history about (the rather recently added) #balanceOffsets:</div><div><br></div><div><a href="http://forum.world.st/A-fix-for-ProportionalSplitterMorph-td5072182.html" target="_blank">http://forum.world.st/A-fix-for-ProportionalSplitterMorph-td5072182.html</a><br></div><div><a href="http://forum.world.st/A-fix-for-ProportionalSplitterMorph-take-2-td5072239.html" target="_blank">http://forum.world.st/A-fix-for-ProportionalSplitterMorph-take-2-td5072239.html</a><br></div><div><br></div><div>> <span style="font-family: Arial,Helvetica,sans-serif;font-size: 13px">one could expect that a Morph bounds is obtained by applying its layoutFrame to its owner bounds</span></div><div><br></div><div>That's exactly what's happening. See:</div><div><br></div><div>Morph >> #doLayoutIn:</div><div>ProportionalLayout >> #layoutIn:</div><div>Morph >> #layoutProportionallyInBounds:(positioning:)</div><div>LayoutFrame >> layout:in:</div><div><br></div><div>> <span style="font-family: Arial,Helvetica,sans-serif;font-size: 13px">for example the grip morphs have a very strange idea of their own layoutFrame</span></div><div><span style="font-family: Arial,Helvetica,sans-serif;font-size: 13px"><br></span></div><div><span style="font-family: Arial,Helvetica,sans-serif;font-size: 13px">Yes, grip morphs are quite hacky. Their relationship to SystemWindow and that window's label area required some unconventional overrides of </span><span style="font-size: 13.3333px">#layoutProportionallyInBounds:(positioning:)</span></div><div><span style="font-size: 13.3333px"><br></span></div><div><span style="font-size: 13.3333px">Anyway, that issue with #balanceOffsets: does not bleed into all these things. It is just confined within ProportionalSplitterMorph. I suppose. :-D</span></div></div></blockquote><div><br></div><div>Yes, it appears I isolated balanceOffsets by the preference checks:</div><div><br></div><div>    (ProportionalSplitterMorph smartVerticalSplitters or: [ ProportionalSplitterMorph smartHorizontalSplitters ])</div><div><br></div><div>and in ProportionalSplitterMorph>>#stopStepping, it once again calls #balanceOffsets to put the state back to the manual-splitter scheme, as if the user had moved the bar themself.</div><div><br></div><div> - Chris</div><div><br></div><div><br></div><div><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 id="gmail-m_-326061020902486755__MailbirdStyleContent" style="font-size: 10pt;font-family: Arial;color: rgb(0,0,0)"><div><span style="font-size: 13.3333px"><br></span></div><div><span style="font-size: 13.3333px">Best,</span></div><div><span style="font-size: 13.3333px">Marcel</span></div><div><span style="font-family: Arial,Helvetica,sans-serif;font-size: 13px"><br></span></div><div></div>
                                        
                                        <blockquote type="cite" style="border-left-style:solid;border-width:1px;margin-top:20px;margin-left:0px;padding-left:10px;min-width:500px">
                        <p style="color:rgb(170,170,170);margin-top:10px">Am 17.11.2019 23:34:24 schrieb Nicolas Cellier <<a href="mailto:nicolas.cellier.aka.nice@gmail.com" target="_blank">nicolas.cellier.aka.nice@gmail.com</a>>:</p><div style="font-family:Arial,Helvetica,sans-serif">
<div dir="ltr"><div dir="ltr">Hi,</div><div>what I see is completely against my opinion of the right thing.</div><div>I gonna expose this opinion below.</div><div><br></div><div>#repositionBy: is trying to change the layoutFrame offsets of the splitter and its neighbour morphs...</div><div>WHAT?</div><div><br></div><div>What are offsets for in the first place?</div><div>They are used for reserving a fixed space, for example for a button to be one lineGrid high!</div><div>A proportional splitter should not change the fixed space, it should rather consider it as a constraint.</div><div>Instead, it should change the proportional space, that is the fraction part of layouts...</div><div>As the name tells! A ProportionalSplitter SHALL change the proportional layout.<br></div><div><br></div><div>What is #balanceOffsets trying to do?</div><div>It's trying to undo the mistakes that we performed in #repositionBy:by transforming the offset deltas into fraction deltas...</div><div>Ouch, it's too late, I don't feel like this is a bright strategy!</div><div><br></div><div>By inspecting the Morphs, I see plenty of surprises... For example, one could expect that a Morph bounds is obtained by applying its layoutFrame to its owner bounds... Err, that ain't always the case, for example the grip morphs have a very strange idea of their own layoutFrame... So before I learn what the least surprise should be, it might take a bit of time... Otherwise, repairing one thing may break two others...</div><div>If you have already gone thru this, share my opinion, and are ready to kill the problem you get my blessing ;)<br></div><div><br></div><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Le dim. 17 nov. 2019 à 20:41, Nicolas Cellier <<a href="mailto:nicolas.cellier.aka.nice@gmail.com" target="_blank">nicolas.cellier.aka.nice@gmail.com</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;min-width:500px"><div dir="ltr"><div>Bingo,</div><div>if I inspect the ProportionalSpliiterMorph (thru halos), then evaluate in inspector:</div><div><br></div><div>    self setProperty: #fullDelta toValue: 0@0; balanceOffsets</div><div><br></div><div>I then get the undesired behavior...</div><div>Thanks Christoph for the starting point<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Le dim. 17 nov. 2019 à 19:20, Thiede, Christoph <<a href="mailto:Christoph.Thiede@student.hpi.uni-potsdam.de" target="_blank">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;min-width:500px">




<div dir="ltr">
<div id="gmail-m_-326061020902486755gmail-m_8686397850491637509gmail-m_4120132448995115731divtagdefaultwrapper" style="font-size: 12pt;color: rgb(0,0,0);font-family: Calibri,Helvetica,sans-serif" dir="ltr">
<div id="gmail-m_-326061020902486755gmail-m_8686397850491637509gmail-m_4120132448995115731divtagdefaultwrapper" 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" dir="ltr">
<p>Hi, I perceived a similar issue a year ago, I'm afraid it appears to have been forgotten ...</p>
<p><br>
</p>
<p></p>
</div>
<blockquote style="margin:0px 0px 0px 40px;border:medium none;padding:0px;min-width:500px">
<div 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" dir="ltr">
<div>I recently found a bug in the splitter class: Each time you mouseDown a splitter but not mouseMove it, it moves itself by delta=1. More concretely I could locate this during debugging in #balanceOffsets, where self layoutFrame leftFraction actually gets
 a larger value with every click. I was able to fix the problem by preventing every call to #balanceOffsets, but that doesn't seem to be the right solution. Since then, I haven't missed any splitter behavior, so I don't understand the point of this method.</div>
<div><span style="font-size: 12pt"><br>
</span></div>
<div><span style="font-size: 12pt">Is there any reason why #fullDelta is set here?</span></div>
</div>
</blockquote>
<div 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" dir="ltr">
<br>
</div>
<div 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" dir="ltr">
<p></p>
<div id="gmail-m_-326061020902486755gmail-m_8686397850491637509gmail-m_4120132448995115731Signature">
<div name="divtagdefaultwrapper">
<div><span style="font-size: 10pt;color: rgb(128,128,128)"></span></div>
</div>
</div>
In every case, I think it could be a good idea to refactor #balanceOffsets in terms of readability :-)</div>
<div 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" dir="ltr">
<br>
</div>
<div 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" dir="ltr">
Best,</div>
<div 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" dir="ltr">
Christoph<br>
<br>
<div style="color:rgb(0,0,0)">
<hr style="display:inline-block;width:98%">
<div id="gmail-m_-326061020902486755gmail-m_8686397850491637509gmail-m_4120132448995115731divRplyFwdMsg" dir="ltr"><span style="font-family:Calibri,sans-serif;color:rgb(0,0,0)"><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> Sonntag, 17. November 2019 19:11 Uhr<br>
<b>An:</b> The general-purpose Squeak developers list<br>
<b>Betreff:</b> [squeak-dev] MCSaveVersionDialog splitter broken</span>
<div> </div>
</div>
<div>
<div dir="ltr">
<div>Hi,</div>
<div>here is how to reproduce:</div>
<div>1. save any package</div>
<div>2. click on the horizontal splitter (below the list of changes)<br>
</div>
<div>3. the splitter goes up once at button down, and once at button up by about the vertical size of the Accept/Cancel buttons</div>
<div><br>
</div>
<div>I don't know where to start searching for it...<br>
</div>
</div>
</div>
</div>
</div>
</div>
</div>

<br>
</blockquote></div>
</blockquote></div></div>
</div></blockquote></div><br>
</blockquote></div></div>
</div></blockquote>
                                        </div></body>