*** empty log message ***
authorca
Fri, 28 Feb 1997 12:39:35 +0100
changeset 64 6724d2091880
parent 63 6714daee4b26
child 65 7342110f7938
*** empty log message ***
UIPropertyView.st
--- a/UIPropertyView.st	Fri Feb 28 12:38:52 1997 +0100
+++ b/UIPropertyView.st	Fri Feb 28 12:39:35 1997 +0100
@@ -1509,10 +1509,8 @@
     |slices list prevSpecClass|
 
     (what == #selection or:[what == #tree]) ifFalse:[
-        (what == #layout and:[modified not and:[self isLayoutSpec]]) ifTrue:[
-            modified := true.
-            self perform:(('fetch', layoutType asString) asSymbol).
-            modified := false.
+        what == #layout ifTrue:[
+            self updateLayout
         ].
         ^ self
     ].
@@ -1811,6 +1809,20 @@
     self layoutType:type.
     modified := false.
 
+!
+
+updateLayout
+    "layout changed but not selection
+    "
+    (currentView notNil and:[modified not and:[self isLayoutSpec]]) ifTrue:[
+        (builderView class layoutType:currentView) == layoutType ifTrue:[
+            modified := true.
+            self perform:(('fetch', layoutType asString) asSymbol).
+            modified := false.
+        ] ifFalse:[    
+            self showAndFetchLayout
+        ]
+    ]
 ! !
 
 !UIPropertyView methodsFor:'private layout fetch'!
@@ -1822,13 +1834,10 @@
 
     aLayout := currentView geometryLayout.
 
-    (layoutAspects at:#leftOffset)   value:(aLayout leftOffset).
-    (layoutAspects at:#leftFraction) value:(aLayout leftFraction).
-    (layoutAspects at:#topOffset)    value:(aLayout topOffset).
-    (layoutAspects at:#topFraction)  value:(aLayout topFraction).
-
     (layoutAspects at:#leftAlignmentFraction) value:(aLayout leftAlignmentFraction).
     (layoutAspects at:#topAlignmentFraction)  value:(aLayout topAlignmentFraction).
+
+    self fetchLayoutOrigin
 !
 
 fetchExtent
@@ -1859,14 +1868,26 @@
 fetchLayoutOrigin
     "fetch layoutOrigin
     "
-    |aLayout|
+    |extent aLayout leftFraction topFraction leftOffset topOffset|
 
+    extent  := currentView extent.
     aLayout := currentView geometryLayout.
 
-    (layoutAspects at:#leftOffset)   value:(aLayout leftOffset).
-    (layoutAspects at:#leftFraction) value:(aLayout leftFraction).
-    (layoutAspects at:#topOffset)    value:(aLayout topOffset).
-    (layoutAspects at:#topFraction)  value:(aLayout topFraction).
+    leftFraction := aLayout leftFraction.
+    topFraction  := aLayout topFraction.
+    leftOffset   := aLayout leftOffset.
+    topOffset    := aLayout topOffset.
+
+    (layoutAspects at:#leftOffset)   value:leftOffset.
+    (layoutAspects at:#leftFraction) value:leftFraction.
+    (layoutAspects at:#topOffset)    value:topOffset.
+    (layoutAspects at:#topFraction)  value:topFraction.
+
+    (layoutAspects at:#rightFraction)  value:leftFraction.
+    (layoutAspects at:#rightOffset)    value:(leftOffset + extent x).
+    (layoutAspects at:#bottomFraction) value:topFraction.
+    (layoutAspects at:#bottomOffset)   value:(topOffset  + extent y).
+
 !
 
 fetchPoint
@@ -1877,7 +1898,7 @@
     p := currentView geometryLayout.
     x := p x.
     y := p y.
-    e := currentView extent.
+    e := currentView computeExtent.
 
     (layoutAspects at:#leftOffset)   value:x.
     (layoutAspects at:#topOffset)    value:y.