Tools_ClassList.st
changeset 12044 154236f3c686
parent 12001 286aa33188ee
child 12466 c14bcbda280c
--- a/Tools_ClassList.st	Wed Nov 07 15:19:04 2012 +0100
+++ b/Tools_ClassList.st	Wed Nov 07 15:21:22 2012 +0100
@@ -463,11 +463,6 @@
 
     classes := self classList value ? #().
 
-    self inSlaveModeOrInvisible ifTrue:[
-        self invalidateList.
-        ^ self.
-    ].
-
 "/    (self slaveMode value == true) ifTrue:[^ self].
 "/    self slaveMode value isNil ifTrue:[
 "/        self window shown ifFalse:[
@@ -477,6 +472,7 @@
 "/    ].
 
     changedObject == slaveMode ifTrue:[
+        "/ a previously suppressed update is now due
         listValid ~~ true ifTrue:[
             self enqueueDelayedUpdateList.
         ].
@@ -484,6 +480,39 @@
         ^  self
     ].
 
+    changedObject == self selectedClasses ifTrue:[
+        self inSlaveMode ifFalse:[
+            savedList := self selectedClasses value.
+            lastSelectedClasses := nil.
+            listValid == true ifFalse:[
+                self updateList
+            ].
+            self selectedClasses setValue:savedList.
+            self selectedClassesChanged.
+            self updateOutputGenerator.
+        ] ifTrue:[
+"/            listValid := false.
+            self selectedClassesChanged.
+        ].
+        ^ self 
+    ].
+
+    (changedObject == meta 
+    or:[changedObject == selectedClassNameIndices]) ifTrue:[
+        self inSlaveMode ifFalse:[
+            self selectionChanged.
+        ] ifTrue:[
+            listValid := false.
+            self selectedClassesChanged.
+        ].
+        ^ self
+    ].
+
+    self inSlaveModeOrInvisible ifTrue:[
+        self invalidateList.
+        ^ self.
+    ].
+
     changedObject == Smalltalk ifTrue:[
         something == #methodInClass ifTrue:[
             ^ self "no interest" 
@@ -583,27 +612,6 @@
         ^ self 
     ].
 
-    changedObject == self selectedClasses ifTrue:[
-        slaveMode value ~~ true ifTrue:[
-            savedList := self selectedClasses value.
-            lastSelectedClasses := nil.
-            listValid == true ifFalse:[
-                self updateList
-            ].
-            self selectedClasses setValue:savedList.
-            self selectedClassesChanged.
-            self updateOutputGenerator.
-        ] ifFalse:[
-            listValid := false.
-        ].
-        ^ self 
-    ].
-
-    (changedObject == meta 
-    or:[changedObject == selectedClassNameIndices]) ifTrue:[
-        self selectionChanged.
-        ^ self
-    ].
     changedObject == showClassPackages ifTrue:[
         self classNameList value:nil.
         self invalidateList.
@@ -801,7 +809,7 @@
 update:something with:aParameter from:changedObject
     |cls sel mthd newMethod oldMethod idx classListValue|
 
-    self slaveMode value == true ifTrue:[
+    self inSlaveMode ifTrue:[
         something == #methodInClass ifTrue:[ ^ self ].
         something == #addChange:    ifTrue:[ self invalidateList. ^ self ].
         something == #methodCoverageInfo ifTrue:[ self invalidateList. ^ self ].
@@ -860,14 +868,16 @@
         ].
 
         something == #methodInClassRemoved ifTrue:[
-            cls := aParameter at:1.
-            cls notNil ifTrue:[
-                classListValue size > 0 ifTrue:[
-                    ((classListValue includesIdentical:cls theNonMetaclass)
-                    or:[(classListValue includesIdentical:cls theMetaclass)]) ifTrue:[
-                        self enqueueDelayedUpdateList
+            self inSlaveMode ifFalse:[
+                cls := aParameter at:1.
+                cls notNil ifTrue:[
+                    classListValue size > 0 ifTrue:[
+                        ((classListValue includesIdentical:cls theNonMetaclass)
+                        or:[(classListValue includesIdentical:cls theMetaclass)]) ifTrue:[
+                            self enqueueDelayedUpdateList
+                        ]
                     ]
-                ]
+                ].
             ].
             ^ self
         ].
@@ -2006,9 +2016,9 @@
 !ClassList class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/Tools_ClassList.st,v 1.69 2012-11-03 11:39:43 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/Tools_ClassList.st,v 1.70 2012-11-07 14:21:22 cg Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libtool/Tools_ClassList.st,v 1.69 2012-11-03 11:39:43 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/Tools_ClassList.st,v 1.70 2012-11-07 14:21:22 cg Exp $'
 ! !