--- a/SubCanvas.st Wed Dec 13 10:43:34 2000 +0100
+++ b/SubCanvas.st Fri Dec 15 16:46:45 2000 +0100
@@ -209,14 +209,18 @@
!
specHolder:aValueHolder
+ |oldSpec|
specHolder notNil ifTrue:[
+ oldSpec := specHolder value.
specHolder removeDependent:self
].
(specHolder := aValueHolder) notNil ifTrue:[
specHolder addDependent:self
].
- self updateFromChannels
+ oldSpec ~~ specHolder value ifTrue:[
+ self updateFromChannels
+ ]
! !
!SubCanvas methodsFor:'building'!
@@ -306,7 +310,7 @@
"/ if the superView is not yet created,
"/ we MUST delay building... (sigh)
- superView isNil ifTrue:[
+ superView isNil ifTrue:[
lateBuild := true.
^ self
].
@@ -369,9 +373,15 @@
].
[
+
client buildSubCanvas:subSpec withBuilder:builder.
-
- self scrolledView:clientView.
+ keepClientView ifFalse:[
+ (scrolledView notNil and:[clientView isSubViewOf:scrolledView]) ifTrue:[
+ self halt
+ ] ifFalse:[
+ self scrolledView:clientView.
+ ]
+ ]
] valueNowOrOnUnwindDo:[
savedView notNil ifTrue:[
builder window:savedView.
@@ -441,6 +451,7 @@
client := nil.
spec := #windowSpec. "/ is that true ?
].
+
self client:client spec:spec builder:nil
"Modified: / 5.8.1999 / 13:35:26 / cg"
@@ -523,5 +534,5 @@
!SubCanvas class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libwidg2/SubCanvas.st,v 1.31 2000-11-22 17:30:13 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libwidg2/SubCanvas.st,v 1.32 2000-12-15 15:46:45 tm Exp $'
! !