diff -uNr svx/source/dialog/transfrm.cxx svx.new/source/dialog/transfrm.cxx --- svx/source/dialog/transfrm.cxx 2007-01-04 09:18:06.000000000 +0800 +++ svx.new/source/dialog/transfrm.cxx 2007-01-04 09:12:20.000000000 +0800 @@ -1378,6 +1378,9 @@ void SvxPositionSizeTabPage::DisableSizeControls() { + BOOL bHeightChecked = maTsbAutoGrowHeight.GetState() == STATE_CHECK; + BOOL bWidthChecked = maTsbAutoGrowWidth.GetState() == STATE_CHECK; + if( maTsbSizeProtect.GetState() == STATE_CHECK ) { maFlSize.Disable(); @@ -1392,12 +1395,21 @@ } else { - maFlSize.Enable(); - maFtWidth.Enable(); - maMtrWidth.Enable(); - maFtHeight.Enable(); - maMtrHeight.Enable(); - maCbxScale.Enable(); + maFlSize.Enable(); + if (!bWidthChecked) + { + maFtWidth.Enable(); + maMtrWidth.Enable(); + if( !bHeightChecked ) + maCbxScale.Enable(); + } + if (!bHeightChecked) + { + maFtHeight.Enable(); + maMtrHeight.Enable(); + if (!bWidthChecked) + maCbxScale.Enable(); + } maFtSizeReference.Enable(); maCtlSize.Enable(); maCtlSize.Invalidate(); @@ -1902,6 +1914,8 @@ IMPL_LINK( SvxPositionSizeTabPage, ClickSizeProtectHdl, void *, p ) { + if( maTsbSizeProtect.GetState() == STATE_CHECK ) + return ( 0L ); if( !mbSizeDisabled ) { BOOL bHeightChecked = !maTsbAutoGrowHeight.IsTriStateEnabled() &&