Kaydet (Commit) 3b8b3136 authored tarafından Oliver-Rainer Wittmann's avatar Oliver-Rainer Wittmann

#119624# - method <SwWW8ImplReader::IsObjectLayoutInTableCell(..)>

- correction of condition interpreting <LayoutInTableCell> attribute
- include support for Microsoft Office 2010 version

Found by: louqle <louqingle at gmail dot com>
Patch by: Oliver-Rainer Wittmann <orw at apache dot org>
Review by: zjchen <zjchencdl at gmail dot com>
üst 153c8eea
......@@ -2398,7 +2398,6 @@ RndStdIds SwWW8ImplReader::ProcessEscherAlign(SvxMSDffImportRec* pRecord,
if ( nInTable &&
( eHoriRel == text::RelOrientation::FRAME || eHoriRel == text::RelOrientation::CHAR ) &&
pFSPA->nwr == 3 &&
// pRecord->nLayoutInTableCell == 0x80000000 )
!IsObjectLayoutInTableCell( pRecord->nLayoutInTableCell ) )
{
eHoriRel = text::RelOrientation::PAGE_PRINT_AREA;
......@@ -2468,19 +2467,20 @@ bool SwWW8ImplReader::IsObjectLayoutInTableCell( const sal_uInt32 nLayoutInTable
{
bIsObjectLayoutInTableCell = false;
ASSERT( nLayoutInTableCell == 0xFFFFFFFF,
"no explicit object attribute layout in table cell excepted." );
"no explicit object attribute layout in table cell expected." );
}
break;
case 0x2000: // version 9 aka Microsoft Word 2000
case 0x4000: // version 10 aka Microsoft Word 2002
case 0x6000: // version 11 aka Microsoft Word 2003
case 0x8000: // version 12 aka Microsoft Word 2007
case 0xC000: // version 14 aka Microsoft Word 2010
{
// --> OD 2009-01-13 #i98037#
// adjustment of conditions needed after deeper analysis of
// certain test cases.
if ( nLayoutInTableCell == 0xFFFFFFFF || // no explicit attribute value given
nLayoutInTableCell & 0x80008000 ||
nLayoutInTableCell == 0x80008000 ||
( nLayoutInTableCell & 0x02000000 &&
!(nLayoutInTableCell & 0x80000000 ) ) )
// <--
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment