<div id="__MailbirdStyleContent" style="font-size: 10pt;font-family: Arial;color: #000000;text-align: left" dir="ltr">
Hi :-)<div><br></div><div>-1 for adding #<span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px">skipOnceScrollSelectionIntoView this way</span></div><div><br></div><div>What's exactly the benefit of putting this extra effort into the implementation? Under which circumstances is that extra scrolling a distraction? What do you want to do after "select all"? <span style="font-size: 10pt">For all that we know, it might be accidental in other systems. :-) </span></div><div><br></div><div>Yet, I do like "visual stability" for such interactions. Maybe we can find a better "rule" to achieve that. Or maybe we can establish a paramter to "selectFrom:to:". There is already "invisible selection". Maybe we can add "stableSelection"? Or something like that.</div><div><br></div><div>Best,</div><div>Marcel</div><div><br></div><div>P.S.: All these "skip once if"-blah rules with little to no benefits can quickly blow up the code base. ;-) </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;min-width: 500px">
<p style="color: #AAAAAA; margin-top: 10px;">Am 24.01.2021 17:23:15 schrieb commits@source.squeak.org <commits@source.squeak.org>:</p><div style="font-family:Arial,Helvetica,sans-serif">A new version of Morphic was added to project The Inbox:<br>http://source.squeak.org/inbox/Morphic-ct.1718.mcz<br><br>==================== Summary ====================<br><br>Name: Morphic-ct.1718<br>Author: ct<br>Time: 24 January 2021, 5:22:59.352273 pm<br>UUID: f630cc0f-15e2-5642-94f6-6277bb8d7bd4<br>Ancestors: Morphic-mt.1710<br><br>PluggableTextMorph: Fixes #selectAll to keep the current scroll position intact, as it is best practice in most modern editor implementations such as Chromium.<br><br>I'm very open to refactoring proposals, but otherwise I don't care if you merge this as-is. :-)<br><br>=============== Diff against Morphic-mt.1710 ===============<br><br>Item was changed:<br> ----- Method: Editor>>selectAll: (in category 'typing/selecting keys') -----<br> selectAll: aKeyboardEvent <br> "select everything, invoked by cmd-a. 1/17/96 sw"<br> <br> self insertAndCloseTypeIn.<br> self selectFrom: 1 to: self string size.<br>+ morph skipOnceScrollSelectionIntoView.<br> ^ true!<br><br>Item was changed:<br> ----- Method: PluggableTextMorph>>scrollSelectionIntoView: (in category 'editor access') -----<br> scrollSelectionIntoView: event <br> "Scroll my text into view. Due to line composition mechanism, we must never use the right of a character block because the lines last character block right value always comes from a global container and is *not* line specific."<br> <br> self rememberSelectionInterval.<br> <br>+ (self valueOfProperty: #skipScrollSelectionIntoView ifAbsent: [false]) ifTrue: [<br>+ self removeProperty: #skipScrollSelectionIntoView.<br>+ ^ true].<br>+ <br> textMorph editor hasSelection<br> ifFalse: [self scrollToShow: (textMorph editor startBlock withWidth: 1)]<br> ifTrue: [<br> self scrollToShow: (textMorph editor startBlock topLeft corner: textMorph editor stopBlock bottomLeft).<br> self scrollToShow: (textMorph editor pointBlock withWidth: 1). "Ensure text cursor visibility."].<br> <br> ^ true!<br><br>Item was added:<br>+ ----- Method: TextMorph>>skipOnceScrollSelectionIntoView (in category 'as yet unclassified') -----<br>+ skipOnceScrollSelectionIntoView<br>+ <br>+ self owner owner setProperty: #skipScrollSelectionIntoView toValue: true.!<br><br><br></div></blockquote></div>