caolanm pushed to libreoffice (master). "negative after-text indents ignored by msword for apos"
notifications at fedoraproject.org
notifications at fedoraproject.org
Tue Apr 7 09:25:37 UTC 2015
>From 8bc870e80c38cb1693af5fdce3f87a1b1daaa42b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm at redhat.com>
Date: Tue, 7 Apr 2015 10:25:17 +0100
Subject: negative after-text indents ignored by msword for apos
diff --git a/0001-negative-after-text-indents-ignored-by-msword-for-ap.patch b/0001-negative-after-text-indents-ignored-by-msword-for-ap.patch
new file mode 100644
index 0000000..a93db65
--- /dev/null
+++ b/0001-negative-after-text-indents-ignored-by-msword-for-ap.patch
@@ -0,0 +1,87 @@
+From b5ce50d1d07394f6b59b028373120369c83d5d66 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm at redhat.com>
+Date: Tue, 7 Apr 2015 09:56:43 +0100
+Subject: [PATCH] negative after-text indents ignored by msword for apos
+
+Change-Id: I33e178f23bc4b1372c4c329954b301ae68902154
+---
+ sw/source/filter/ww8/ww8graf.cxx | 3 +++
+ sw/source/filter/ww8/ww8par.hxx | 2 ++
+ sw/source/filter/ww8/ww8par6.cxx | 26 ++++++++++++++++++++++++++
+ 3 files changed, 31 insertions(+)
+
+diff --git a/sw/source/filter/ww8/ww8graf.cxx b/sw/source/filter/ww8/ww8graf.cxx
+index 456ce25..3a11d1e 100644
+--- a/sw/source/filter/ww8/ww8graf.cxx
++++ b/sw/source/filter/ww8/ww8graf.cxx
+@@ -2905,7 +2905,10 @@ SwFlyFrmFmt* SwWW8ImplReader::ConvertDrawTextToFly(SdrObject* &rpObject,
+ MoveOutsideFly(pRetFrmFmt, aSave.GetStartPos(),!bJoined);
+
+ aSave.Restore( this );
++
++ StripNegativeAfterIndent(pRetFrmFmt);
+ }
++
+ }
+ return pRetFrmFmt;
+ }
+diff --git a/sw/source/filter/ww8/ww8par.hxx b/sw/source/filter/ww8/ww8par.hxx
+index a7fdff5..0a34059 100644
+--- a/sw/source/filter/ww8/ww8par.hxx
++++ b/sw/source/filter/ww8/ww8par.hxx
+@@ -1488,6 +1488,7 @@ private:
+ bool IsDropCap();
+ bool IsListOrDropcap() { return (!pAktItemSet || bDropCap); };
+
++ //Apo == Absolutely Positioned Object, MSWord's old-style frames
+ WW8FlyPara *ConstructApo(const ApoTestResults &rApo,
+ const WW8_TablePos *pTabPos);
+ bool StartApo(const ApoTestResults &rApo, const WW8_TablePos *pTabPos, SvxULSpaceItem* pULSpaceItem = 0);
+@@ -1495,6 +1496,7 @@ private:
+ bool TestSameApo(const ApoTestResults &rApo, const WW8_TablePos *pTabPos);
+ ApoTestResults TestApo(int nCellLevel, bool bTableRowEnd,
+ const WW8_TablePos *pTabPos);
++ void StripNegativeAfterIndent(SwFrmFmt *pFlyFmt) const;
+
+ void EndSpecial();
+ bool ProcessSpecial(bool &rbReSync, WW8_CP nStartCp);
+diff --git a/sw/source/filter/ww8/ww8par6.cxx b/sw/source/filter/ww8/ww8par6.cxx
+index 418e130..b63e639 100644
+--- a/sw/source/filter/ww8/ww8par6.cxx
++++ b/sw/source/filter/ww8/ww8par6.cxx
+@@ -2430,6 +2430,32 @@ bool SwWW8ImplReader::JoinNode(SwPaM &rPam, bool bStealAttr)
+ return bRet;
+ }
+
++//In auto-width word frames negative after-indent values are ignored
++void SwWW8ImplReader::StripNegativeAfterIndent(SwFrmFmt *pFlyFmt) const
++{
++ const SwNodeIndex* pSttNd = pFlyFmt->GetCntnt().GetCntntIdx();
++ if (!pSttNd)
++ return;
++
++ SwNodeIndex aIdx(*pSttNd, 1);
++ SwNodeIndex aEnd(*pSttNd->GetNode().EndOfSectionNode());
++ while (aIdx < aEnd)
++ {
++ SwTxtNode *pNd = aIdx.GetNode().GetTxtNode();
++ if (pNd)
++ {
++ const SvxLRSpaceItem& rLR = ItemGet<SvxLRSpaceItem>(*pNd, RES_LR_SPACE);
++ if (rLR.GetRight() < 0)
++ {
++ SvxLRSpaceItem aLR(rLR);
++ aLR.SetRight(0);
++ pNd->SetAttr(aLR);
++ }
++ }
++ ++aIdx;
++ }
++}
++
+ void SwWW8ImplReader::StopApo()
+ {
+ OSL_ENSURE(pWFlyPara, "no pWFlyPara to close");
+--
+1.9.3
+
diff --git a/libreoffice.spec b/libreoffice.spec
index 5bd1b5e..f2daacf 100644
--- a/libreoffice.spec
+++ b/libreoffice.spec
@@ -324,6 +324,7 @@ Patch24: 0001-gdk-pixbuf-xlib-2.0-gdk-pixbuf-2.0.patch
Patch25: 0001-Resolves-rhbz-1204244-group-sdb-windows-together-as-.patch
Patch26: 0001-Resolves-tdf-90256-repair-invalid-docking-positions.patch
Patch27: 0001-gnome-745909-grab-ungrab-keyboard-for-menus.patch
+Patch28: 0001-negative-after-text-indents-ignored-by-msword-for-ap.patch
%define instdir %{_libdir}
%define baseinstdir %{instdir}/libreoffice
--
cgit v0.10.2
http://pkgs.fedoraproject.org/cgit/libreoffice.git/commit/?h=master&id=8bc870e80c38cb1693af5fdce3f87a1b1daaa42b
More information about the scm-commits
mailing list