Fix race when changing a selection
authorStefan Vogel <sv@exept.de>
Tue, 30 Jan 2007 15:06:14 +0100
changeset 7613 7b59de1f0350
parent 7612 42b1c57c6cc7
child 7614 0b7ae7d97287
Fix race when changing a selection
SettingsDialog.st
--- a/SettingsDialog.st	Fri Jan 26 15:21:03 2007 +0100
+++ b/SettingsDialog.st	Tue Jan 30 15:06:14 2007 +0100
@@ -1071,7 +1071,7 @@
 !
 
 selectionChanged
-    | item oldAppl noApp lbl window app itemLabel|
+    |item oldAppl noApp lbl window app itemLabel|
 
     self selectedItem value == lastSelection  ifTrue:[ ^ self].
 
@@ -1110,9 +1110,12 @@
         window label:lbl.
     ].
 
-    builder notNil ifTrue:[
-        (builder componentAt:#DisabledSettingsBox) beInvisible.
-        (builder componentAt:#DisabledSettingsBox) lower.
+    builder notNil ifTrue:[ |box|
+        "hide the DisabledSettingsBox"
+        box := builder componentAt:#DisabledSettingsBox.
+        box notNil ifTrue:[
+            box beInvisible; lower.
+        ].
     ].
 
     noApp ifTrue:[
@@ -1124,10 +1127,13 @@
     app isNil ifTrue:[
         app := item applicationClass basicNew.
         (app isEnabledInSettingsDialog:self) ifFalse:[
+            "raise the DisabledSettingsBox above the settings window"
             self whyDisabledInfoHolder value:('These Settings are currently disabled, because\',app whyDisabledInSettingsDialogInfo) withCRs.
-            builder notNil ifTrue:[
-                (builder componentAt:#DisabledSettingsBox) beVisible.
-                (builder componentAt:#DisabledSettingsBox) raise.
+            builder notNil ifTrue:[ |box|
+                box := builder componentAt:#DisabledSettingsBox.
+                box notNil ifTrue:[
+                    box beVisible; raise.
+                ].
             ].
             self subCanvasApplicationHolder value:nil.
             ^ self
@@ -1328,7 +1334,7 @@
 !SettingsDialog class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/SettingsDialog.st,v 1.70 2007-01-25 17:10:10 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/SettingsDialog.st,v 1.71 2007-01-30 14:06:14 stefan Exp $'
 ! !
 
 SettingsDialog initialize!