Tools_BrowserList.st
changeset 11899 f6ed97f1d73f
parent 11563 38df8cbd2591
child 11919 9fa21d589eba
--- a/Tools_BrowserList.st	Tue Oct 23 10:27:33 2012 +0200
+++ b/Tools_BrowserList.st	Tue Oct 23 10:39:59 2012 +0200
@@ -805,8 +805,8 @@
     (NewSystemBrowser synchronousUpdate == true
     or:[ immediateUpdate value == true ])
     ifTrue:[
-	self delayedUpdate:something with:aParameter from:changedObject.
-	^ self.
+        self delayedUpdate:something with:aParameter from:changedObject.
+        ^ self.
     ].
 
 "/    (changedObject == ChangeSet)
@@ -824,7 +824,12 @@
 "/    ].
 
     changedObject == inGeneratorHolder ifTrue:[
-	listValid := false.
+        listValid := false.
+        "/ if not already shown, avoid the processing until shown
+        "/ cg: does not work (for whatever reason) - try implementors...
+        true "self window shown" ifFalse:[
+            ^ self
+        ].
     ].
     self enqueueDelayedUpdate:something with:aParameter from:changedObject.
 
@@ -889,9 +894,13 @@
         inGeneratorHolder addDependent:self
     ].
     (prevHolder notNil or:[inGeneratorHolder notNil]) ifTrue:[
-        (prevHolder value isNil and:[ inGeneratorHolder value isEmptyOrNil]) 
-        ifFalse:[
-            self update:#value with:nil from:inGeneratorHolder
+        self window shown ifFalse:[
+            "/ self enqueueDelayedUpdateList - will be done anyway, when shown
+        ] ifTrue:[
+            (prevHolder value isNil and:[ inGeneratorHolder value isEmptyOrNil]) 
+            ifFalse:[
+                self update:#value with:nil from:inGeneratorHolder
+            ].
         ].
     ].
 
@@ -1108,6 +1117,11 @@
 
 !BrowserList methodsFor:'initialize-release'!
 
+initialize
+    listValid := false.
+    super initialize.
+!
+
 release
     self makeIndependent.
     super release.
@@ -1498,7 +1512,7 @@
     |list|
 
     self slaveMode value == true ifFalse:[
-        self updateList.
+        listValid ifFalse:[self enqueueDelayedUpdateList "updateList"].
     ] ifTrue:[
         self invalidateList
     ].
@@ -1796,5 +1810,5 @@
 !BrowserList class methodsFor:'documentation'!
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libtool/Tools_BrowserList.st,v 1.42 2012-06-05 22:04:08 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/Tools_BrowserList.st,v 1.43 2012-10-23 08:39:59 cg Exp $'
 ! !