incubator-ooo-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From le...@apache.org
Subject svn commit: r1382645 - /incubator/ooo/trunk/main/sw/source/filter/ww8/ww8graf.cxx
Date Mon, 10 Sep 2012 05:45:43 GMT
Author: leidb
Date: Mon Sep 10 05:45:43 2012
New Revision: 1382645

URL: http://svn.apache.org/viewvc?rev=1382645&view=rev
Log:
#119549# fix Position of drawing obj incorrect 
 * when opening .doc in AOO, if the text direction of the whole document is vertical, the
pos of the drawing obj will be wrong.
Reported by: Lou Qing le
Patch by: Chen Zuo Jun
Review by: Lei De Bin 

Modified:
    incubator/ooo/trunk/main/sw/source/filter/ww8/ww8graf.cxx

Modified: incubator/ooo/trunk/main/sw/source/filter/ww8/ww8graf.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/main/sw/source/filter/ww8/ww8graf.cxx?rev=1382645&r1=1382644&r2=1382645&view=diff
==============================================================================
--- incubator/ooo/trunk/main/sw/source/filter/ww8/ww8graf.cxx (original)
+++ incubator/ooo/trunk/main/sw/source/filter/ww8/ww8graf.cxx Mon Sep 10 05:45:43 2012
@@ -2234,6 +2234,7 @@ RndStdIds SwWW8ImplReader::ProcessEscher
     ASSERT(pRecord || pFSPA, "give me something! to work with for anchoring");
     if (!pRecord && !pFSPA)
         return FLY_AT_PAGE;
+	sal_Bool bCurSectionVertical = maSectionManager.CurrentSectionIsVertical();
 
     SvxMSDffImportRec aRecordFromFSPA;
     if (!pRecord)
@@ -2269,7 +2270,7 @@ RndStdIds SwWW8ImplReader::ProcessEscher
         // is a hint that these values aren't set by the escher import - see
         // method <SwMSDffManager::ProcessObj(..)>. Then, check if for each
         // values, if it differs from the one in the FSPA.
-        if ( pRecord->nXRelTo == 2 && pRecord->nYRelTo == 2 )
+        if ( pRecord->nXRelTo == 2 && pRecord->nYRelTo == 2 && !bCurSectionVertical)
         {
             // if <nYRelTo> differs from <FSPA.nby> overwrite <nYRelTo>
             if ( pFSPA->nby != pRecord->nYRelTo )
@@ -2408,11 +2409,6 @@ RndStdIds SwWW8ImplReader::ProcessEscher
         }
         // <--
 
-        SwFmtHoriOrient aHoriOri(MakeSafePositioningValue(pFSPA->nXaLeft),
-            eHoriOri, eHoriRel);
-        if( 4 <= nXAlign )
-            aHoriOri.SetPosToggle(true);
-        rFlySet.Put( aHoriOri );
 
         //Writer honours this wrap distance when aligned as "left" or "right",
         //Word doesn't. Writer doesn't honour it when its "from left".
@@ -2424,6 +2420,8 @@ RndStdIds SwWW8ImplReader::ProcessEscher
         sal_Int16 eVertRel;
         // OD 14.10.2003 #i18732#
         eVertRel = aVertRelOriTab[  nYRelTo ];
+		if ( bCurSectionVertical && nYRelTo == 2 )
+			eVertRel = text::RelOrientation::PAGE_PRINT_AREA;
         // CMC, OD 24.11.2003 #i22673# - fill <eVertOri> in dependence of <eVertRel>
         sal_Int16 eVertOri;
         if ( eVertRel == text::RelOrientation::TEXT_LINE )
@@ -2442,8 +2440,16 @@ RndStdIds SwWW8ImplReader::ProcessEscher
         if ((eVertRel == text::RelOrientation::TEXT_LINE) && (eVertOri == text::VertOrientation::NONE))
             nYPos = -nYPos;
 
-        rFlySet.Put(SwFmtVertOrient(MakeSafePositioningValue(nYPos),
-            eVertOri, eVertRel));
+		SwFmtHoriOrient aHoriOri(MakeSafePositioningValue(	bCurSectionVertical ? nYPos : pFSPA->nXaLeft
),
+															bCurSectionVertical ? eVertOri : eHoriOri, 
+															bCurSectionVertical ? eVertRel : eHoriRel);
+		if( 4 <= nXAlign )
+		    aHoriOri.SetPosToggle(true);
+		rFlySet.Put( aHoriOri );
+
+        rFlySet.Put(SwFmtVertOrient(MakeSafePositioningValue( !bCurSectionVertical ? nYPos
: -pFSPA->nXaRight ),
+																!bCurSectionVertical ? eVertOri : eHoriOri, 
+																!bCurSectionVertical ? eVertRel : eHoriRel ));
 
         if (
             (pFSPA->nYaTop < 0) && (eVertOri == text::VertOrientation::NONE)
&&



Mime
View raw message