do not replace a General format with a General format
Found when investigating fdo#79228 which was caused by the ScPatternAttr change due to the number format being applied. Change-Id: Ieada557f5e194401a9ce255f26d71d36e0704f35
This commit is contained in:
@@ -1682,10 +1682,21 @@ void ScFormulaCell::InterpretTail( ScInterpretTailParameter eTailParam )
|
|||||||
nFormatIndex = ScGlobal::GetStandardFormat(*pDocument->GetFormatTable(),
|
nFormatIndex = ScGlobal::GetStandardFormat(*pDocument->GetFormatTable(),
|
||||||
nFormatIndex, nFormatType);
|
nFormatIndex, nFormatType);
|
||||||
|
|
||||||
// set number format explicitly
|
// Do not replace a General format (which was the reason why
|
||||||
pDocument->SetNumberFormat( aPos, nFormatIndex );
|
// mbNeedsNumberFormat was set) with a General format.
|
||||||
|
// 1. setting a format has quite some overhead in the
|
||||||
|
// ScPatternAttr/ScAttrArray handling, even if identical.
|
||||||
|
// 2. the General formats may be of different locales.
|
||||||
|
// XXX if mbNeedsNumberFormat was set even if the current format
|
||||||
|
// was not General then we'd have to obtain the current format here
|
||||||
|
// and check at least the types.
|
||||||
|
if ((nFormatIndex % SV_COUNTRY_LANGUAGE_OFFSET) != 0)
|
||||||
|
{
|
||||||
|
// set number format explicitly
|
||||||
|
pDocument->SetNumberFormat( aPos, nFormatIndex );
|
||||||
|
bChanged = true;
|
||||||
|
}
|
||||||
|
|
||||||
bChanged = true;
|
|
||||||
mbNeedsNumberFormat = false;
|
mbNeedsNumberFormat = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user