[squeak-dev] The Trunk: Morphic-ul.517.mcz

commits at source.squeak.org commits at source.squeak.org
Sat Jan 29 00:30:45 UTC 2011


Levente Uzonyi uploaded a new version of Morphic to project The Trunk:
http://source.squeak.org/trunk/Morphic-ul.517.mcz

==================== Summary ====================

Name: Morphic-ul.517
Author: ul
Time: 29 January 2011, 1:29:48.539 am
UUID: 8fc622a0-bd75-1445-b30f-dd525ec0f5bf
Ancestors: Morphic-dtl.516

- avoid an annoying error which is possibly caused by a concurrency issue. It happens rarely (often if you're using RFB) when you press the backspace in a TextEditor.

=============== Diff against Morphic-dtl.516 ===============

Item was changed:
  ----- Method: TextEditor>>backTo: (in category 'typing support') -----
  backTo: startIndex
  	"During typing, backspace to startIndex.  Deleted characters fall into three
  	 clusters, from left to right in the text: (1) preexisting characters that were
  	 backed over; (2) newly typed characters that were backed over (excluding
  	 typeahead, which never even appears); (3) preexisting characters that
  	 were highlighted before typing began.  If typing has not yet been opened,
  	 open it and watch for the first and third cluster.  If typing has been opened,
  	 watch for the first and second cluster.  Save characters from the first and third
  	 cluster in UndoSelection.  Tally characters from the first cluster in UndoMessage's parameter.
  	 Delete all the clusters.  Do not alter Undoer or UndoInterval (except via
  	 openTypeIn).  The code is shorter than the comment."
  
  	| saveLimit newBackovers |
  	saveLimit := beginTypeInBlock
  		ifNil: [self openTypeIn. UndoSelection := self nullText. self stopIndex]
  		ifNotNil: [self startOfTyping].
  	self markIndex: startIndex.
  	startIndex < saveLimit ifTrue: [
  		newBackovers := self startOfTyping - startIndex.
  		beginTypeInBlock := self startIndex.
  		UndoSelection replaceFrom: 1 to: 0 with:
  			(paragraph text copyFrom: startIndex to: saveLimit - 1).
+ 		UndoMessage arguments size > 0 ifTrue: [
+ 			UndoMessage argument: (UndoMessage argument ifNil: [1]) + newBackovers] ].
- 		UndoMessage argument: (UndoMessage argument ifNil: [1]) + newBackovers].
  	self zapSelectionWith: self nullText.
  	self unselect!




More information about the Squeak-dev mailing list