--- a/ChangesBrowser.st Fri Apr 15 14:52:35 2005 +0200
+++ b/ChangesBrowser.st Mon Apr 18 13:41:56 2005 +0200
@@ -3868,8 +3868,8 @@
changeListView setSelection:nil.
stop to:start by:-1 do:[:changeNr |
self silentDeleteInternalChange:changeNr.
- changeListView removeIndex:changeNr.
].
+ changeListView removeFromIndex:start toIndex:stop.
"/ changeListView contentsChanged.
"/ changeListView redrawFromLine:start.
@@ -4746,10 +4746,38 @@
doDelete
"delete currently selected change(s)"
+ |rangeEnd rangeStart firstDeleted|
+
+ changeListView selection size <= 5 ifTrue:[
+ self withSelectedChangesReverseDo:[:changeNr |
+ self deleteChange:changeNr.
+ self autoSelectOrEnd:changeNr
+ ].
+ ^ self
+ ].
+
self withSelectedChangesReverseDo:[:changeNr |
- self deleteChange:changeNr.
- self autoSelectOrEnd:changeNr
- ]
+ rangeEnd isNil ifTrue:[
+ rangeEnd := rangeStart := changeNr
+ ] ifFalse:[
+ (changeNr = (rangeEnd + 1)) ifTrue:[
+ rangeEnd := changeNr
+ ] ifFalse:[
+ (changeNr = (rangeStart - 1)) ifTrue:[
+ rangeStart := changeNr
+ ] ifFalse:[
+ self deleteChangesFrom:rangeStart to:rangeEnd.
+ firstDeleted := (firstDeleted ? rangeStart) min:rangeStart.
+ rangeStart := rangeEnd := nil.
+ ].
+ ].
+ ].
+ ].
+ rangeStart notNil ifTrue:[
+ self deleteChangesFrom:rangeStart to:rangeEnd.
+ firstDeleted := (firstDeleted ? rangeStart) min:rangeStart.
+ ].
+ self autoSelectOrEnd:firstDeleted
!
doDeleteAndSelectPrevious
@@ -5630,5 +5658,5 @@
!ChangesBrowser class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/ChangesBrowser.st,v 1.328 2005-03-08 10:55:32 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/ChangesBrowser.st,v 1.329 2005-04-18 11:41:56 cg Exp $'
! !