# HG changeset patch # User Stefan Vogel # Date 1170165974 -3600 # Node ID 7b59de1f035053227efbebd8ae38dabd50ea57d7 # Parent 42b1c57c6cc7b65ae47db1209c619dec3d85e38f Fix race when changing a selection diff -r 42b1c57c6cc7 -r 7b59de1f0350 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!