ChangesBrowser.st
changeset 6255 b43a5b25e300
parent 6216 5f56f6780ea3
child 6270 80d26b5afda0
--- 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 $'
 ! !