ObjectView.st
changeset 733 f67b1c728316
parent 732 1b1520ba6c56
child 736 53d23f1eb6af
--- a/ObjectView.st	Thu May 30 17:58:57 1996 +0200
+++ b/ObjectView.st	Thu May 30 18:47:01 1996 +0200
@@ -903,7 +903,14 @@
      Extracted into a separate method to allow easier redefinition
      (different lineWidth etc)"
 
-    self xoring:[self lineWidth:0. self displayRectangle:dragObject].
+    self xoring:[
+        self lineWidth:0. 
+        self lineStyle:#dashed.
+        self displayRectangle:dragObject.
+        self lineStyle:#solid.
+    ].
+
+    "Modified: 30.5.1996 / 18:27:48 / cg"
 !
 
 setRectangleDragActions
@@ -2417,11 +2424,18 @@
 addToSelection:anObject
     "add anObject to the selection"
 
+    self hideSelection.
+
     selection isCollection ifFalse:[
-	selection := OrderedCollection with:selection
+        selection := OrderedCollection with:selection
     ].
-    selection add:anObject.
-    self showSelected:anObject
+    (selection includes:anObject) ifFalse:[
+        selection add:anObject.
+"/        self showSelected:anObject
+    ].
+    self showSelection
+
+    "Modified: 30.5.1996 / 18:44:06 / cg"
 !
 
 hideSelection
@@ -2435,17 +2449,31 @@
 removeFromSelection:anObject
     "remove anObject from the selection"
 
+    |wasSelected|
+
+    wasSelected := true.
+    self hideSelection.
+
     selection isCollection ifTrue:[
-	selection remove:anObject ifAbsent:[nil].
-	(selection size == 1) ifTrue:[
-	    selection := selection first
-	]
+        (selection remove:anObject ifAbsent:[nil]) isNil ifTrue:[
+            wasSelected := false
+        ].
+        (selection size == 1) ifTrue:[
+            selection := selection first
+        ]
     ] ifFalse:[
-	(selection == anObject) ifTrue:[
-	    selection := nil
-	]
+        (selection == anObject) ifTrue:[
+            selection := nil
+        ] ifFalse:[
+            wasSelected := false
+        ]
     ].
-    self showUnselected:anObject
+    wasSelected ifTrue:[
+"/        self showUnselected:anObject
+    ].
+    self showSelection.
+
+    "Modified: 30.5.1996 / 18:44:25 / cg"
 !
 
 select:something
@@ -2710,18 +2738,20 @@
 
     anObject := self findObjectAt:aPoint.
     anObject notNil ifTrue:[
-	(self isSelected:anObject) ifTrue:[
-	    "remove from selection"
-	    self removeFromSelection:anObject
-	] ifFalse:[
-	    "add to selection"
-	    self addToSelection:anObject
-	].
-	self startObjectMove:selection at:aPoint.
-	^ self
+        (self isSelected:anObject) ifTrue:[
+            "remove from selection"
+            self removeFromSelection:anObject
+        ] ifFalse:[
+            "add to selection"
+            self addToSelection:anObject
+        ].
+        self startObjectMove:selection at:aPoint.
+        ^ self
     ].
-    self unselect.
-    self startRectangleDrag:aPoint
+"/    self unselect.
+"/    self startRectangleDrag:aPoint
+
+    "Modified: 30.5.1996 / 18:45:54 / cg"
 !
 
 startSelectOrMove:aPoint
@@ -2839,5 +2869,5 @@
 !ObjectView class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libwidg/ObjectView.st,v 1.42 1996-05-30 15:58:57 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libwidg/ObjectView.st,v 1.43 1996-05-30 16:47:01 cg Exp $'
 ! !