<div dir="ltr">Hi Nicolas,<div><br></div><div>I don't really understand the symptom you describe, but if you yellow-clicked the splitter, then that would've invoked the manual smart-splitter feature.</div><div><br></div><div>It takes care to follow certain principles which require absolute positioning relative to other widgets.  For example, the desire to reduce the number of scroll bars.  Another is to avoid stealing focus when mouseOverForKeyboard focus is used.  These requirements require a duality of proportional and absolute positioning control.  I made a video a while ago which presents the feature and covers this point. [1]</div><div><br></div><div>Best,<br></div><div>  Chris</div><div><br></div><div>[1] -- <a href="https://youtu.be/JPQrDMIpjis">https://youtu.be/JPQrDMIpjis</a></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Nov 17, 2019 at 4:34 PM Nicolas Cellier <<a href="mailto:nicolas.cellier.aka.nice@gmail.com">nicolas.cellier.aka.nice@gmail.com</a>> wrote:<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 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"><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">




<div dir="ltr">
<div id="gmail-m_3303610674184105989gmail-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_3303610674184105989gmail-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">
<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_3303610674184105989gmail-m_8686397850491637509gmail-m_4120132448995115731Signature">
<div name="divtagdefaultwrapper">
<div><font size="2" color="#808080"></font></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_3303610674184105989gmail-m_8686397850491637509gmail-m_4120132448995115731divRplyFwdMsg" 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> 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</font>
<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>
<br>
</blockquote></div>