--- 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.