# HG changeset patch # User ca # Date 857383561 -3600 # Node ID c9779da5ce4eb29f1823fd58fa27e7d8d7cfd732 # Parent dfa8644e02873fff040a0b77a2145d3558cbc1ce *** empty log message *** diff -r dfa8644e0287 -r c9779da5ce4e UIPainterView.st --- a/UIPainterView.st Mon Mar 03 11:04:20 1997 +0100 +++ b/UIPainterView.st Mon Mar 03 11:06:01 1997 +0100 @@ -1780,7 +1780,7 @@ undoSpecModify:aViewId "undo method when changing the specification for an object " - |builder view spec| + |builder view spec v| undoHistory isTransactionOpen ifFalse:[^ self]. @@ -1791,8 +1791,15 @@ undoHistory addUndoBlock:[ (view := self findViewWithId:aViewId) notNil ifTrue:[ builder := UIBuilder new. - spec setAttributesIn:view with:builder. - self elementChangedSize:view. + spec needsRebuildForAttributes ifTrue:[ + v := spec buildViewWithLayoutFor:builder in:view superView. + v realize. + view destroy. + view become:v. + ] ifFalse:[ + spec setAttributesIn:view with:builder. + self elementChangedSize:view. + ]. ] ] ]. @@ -1806,7 +1813,7 @@ updateFromSpec:aSpec "update current selected view from specification " - |props name builder| + |props name builder v| self singleSelection notNil ifTrue:[ self withSelectionHiddenDo:[ @@ -1830,8 +1837,17 @@ ] ]. - aSpec setAttributesIn:aView with:builder. - self elementChangedSize:aView. + aSpec needsRebuildForAttributes ifTrue:[ + v := aSpec buildViewWithLayoutFor:builder in:aView superView. + v realize. + aView destroy. + device sync. device flush. + aView becomeSameAs:v. + inputView raise. + ] ifFalse:[ + aSpec setAttributesIn:aView with:builder. + self elementChangedSize:aView. + ]. props tabable:aSpec tabable. props defaultable:aSpec defaultable. @@ -1845,6 +1861,7 @@ self changed:#tree ]. + "Modified: 1.3.1997 / 01:39:53 / cg" ! ! !UIPainterView::ViewProperty class methodsFor:'documentation'!