@@ -175,8 +175,12 @@ export default abstract class Shape extends Observable {
175175 @stringProperty ( { nonPaintProp : true } ) horizontalAlignment : HorizontalAlignment & 'middle' ;
176176 @stringProperty ( { nonPaintProp : true } ) verticalAlignment : VerticalAlignment & 'center' ;
177177
178- @percentLengthProperty width : PercentLength ;
179- @percentLengthProperty height : PercentLength ;
178+ @percentLengthProperty ( { nonPaintProp : true } ) width : PercentLength ;
179+ @percentLengthProperty ( { nonPaintProp : true } ) height : PercentLength ;
180+ @percentLengthProperty ( { nonPaintProp : true } ) paddingLeft : PercentLength ;
181+ @percentLengthProperty ( { nonPaintProp : true } ) paddingRight : PercentLength ;
182+ @percentLengthProperty ( { nonPaintProp : true } ) paddingBottom : PercentLength ;
183+ @percentLengthProperty ( { nonPaintProp : true } ) paddingTop : PercentLength ;
180184
181185 protected handleAlignment = false ;
182186
@@ -197,10 +201,10 @@ export default abstract class Shape extends Observable {
197201 if ( ! this . handleAlignment ) {
198202 const availableWidth = Utils . layout . toDevicePixels ( canvas . getWidth ( ) ) ;
199203 const availableHeight = Utils . layout . toDevicePixels ( canvas . getHeight ( ) ) ;
200- const paddingLeft = Utils . layout . toDeviceIndependentPixels ( parent . effectivePaddingLeft ) + Utils . layout . toDeviceIndependentPixels ( parent . effectiveBorderLeftWidth ) ;
201- const paddingRight = Utils . layout . toDeviceIndependentPixels ( parent . effectivePaddingRight ) + Utils . layout . toDeviceIndependentPixels ( parent . effectiveBorderRightWidth ) ;
202- const paddingTop = Utils . layout . toDeviceIndependentPixels ( parent . effectivePaddingTop ) + Utils . layout . toDeviceIndependentPixels ( parent . effectiveBorderTopWidth ) ;
203- const paddingBottom = Utils . layout . toDeviceIndependentPixels ( parent . effectivePaddingBottom ) + Utils . layout . toDeviceIndependentPixels ( parent . effectiveBorderBottomWidth ) ;
204+ const paddingLeft = Utils . layout . toDeviceIndependentPixels ( parent . effectivePaddingLeft ) + Utils . layout . toDeviceIndependentPixels ( PercentLength . toDevicePixels ( this . paddingLeft , 0 , availableWidth ) ) + Utils . layout . toDeviceIndependentPixels ( parent . effectiveBorderLeftWidth ) ;
205+ const paddingRight = Utils . layout . toDeviceIndependentPixels ( parent . effectivePaddingRight ) + Utils . layout . toDeviceIndependentPixels ( PercentLength . toDevicePixels ( this . paddingRight , 0 , availableWidth ) ) + Utils . layout . toDeviceIndependentPixels ( parent . effectiveBorderRightWidth ) ;
206+ const paddingTop = Utils . layout . toDeviceIndependentPixels ( parent . effectivePaddingTop ) + Utils . layout . toDeviceIndependentPixels ( PercentLength . toDevicePixels ( this . paddingTop , 0 , availableHeight ) ) + Utils . layout . toDeviceIndependentPixels ( parent . effectiveBorderTopWidth ) ;
207+ const paddingBottom = Utils . layout . toDeviceIndependentPixels ( parent . effectivePaddingBottom ) + Utils . layout . toDeviceIndependentPixels ( PercentLength . toDevicePixels ( this . paddingBottom , 0 , availableHeight ) ) + Utils . layout . toDeviceIndependentPixels ( parent . effectiveBorderBottomWidth ) ;
204208 canvas . save ( ) ;
205209 if ( paddingLeft > 0 ) {
206210 canvas . translate ( paddingLeft , 0 ) ;
0 commit comments