Not sure if this is the same, but it sounds similar to something I have experienced in recent squeaks. See if this helps at all:

'From Squeak5.1 of 23 August 2016 [latest update: #16548] on 3 November 2018 at 9:50:50 pm'!

!TextMorphForEditView methodsFor: 'event handling' stamp: 'raa 11/3/2018 21:50'!
keyStroke: evt
    | view |
    editView deleteBalloon.
    (editView scrollByKeyboard: evt) ifTrue: [^self].
   
   
    [(evt controlKeyPressed
        and: [evt commandKeyPressed]
        and: [evt keyValue = 28 or: [evt keyValue = 29]]
    ) ifTrue: [
        ^self    "funky trackpad code scrolls - yecch"
    ].] on: Error do: [ :ex | ].



    self editor model: editView model.  "For evaluateSelection"
    view := editView.  "Copy into temp for case of a self-mutating doit"
    (acceptOnCR and: [evt keyCharacter = Character cr])
        ifTrue: [^ self editor accept].
    super keyStroke: evt.
    view scrollSelectionIntoView.
   
    "Make a cheap check and guess editing. (Alternative would be to copy the old contents and then compare them against the new ones. Maybe add a better hook in the TextEditor."
    (self readOnly not and: [evt keyCharacter isAlphaNumeric or: [evt keyCharacter isSeparator]])
        ifTrue: [view textEdited: self contents].! !


On 11/3/18 5:44 PM, Chris Muller wrote:
Hi Eliot and all,

I have just noticed in Squeak 5.2 that attempting to scroll a text
pane beyond its scroll limit causes the text cursor to start moving.
So, for example, when I have a selected expression in the debugger,
and I simply scroll the text pane, I hit the end and lose the
selection, which is incredibly annoying.

Does anyone know why this is and how to fix it?

Thanks