summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.co.uk>2014-06-03 12:44:37 +0200
committerMiklos Vajna <vmiklos@collabora.co.uk>2014-06-03 13:10:36 +0200
commite2b260fc98e833d4e64426b90992094f2da0498c (patch)
tree650a56a48d695221c7a64760026a832193ba9476
parentf0546a51ada8dc4f4436861e03e086938e9dd555 (diff)
sw: let layout not mark embedded object as modified
The problem was that right after the import, the document wasn't marked as modified, but as layout settled, it got marked as modified. Given that we already have code to avoid modification when updating the replacement image, do something similar here: when setting the view area, make sure the embedded object's component is not marked as modified. Change-Id: I88a42829ec48db54178553661863a571cd2a268b
-rw-r--r--sw/qa/extras/ooxmlimport/ooxmlimport.cxx4
-rw-r--r--sw/source/uibase/wrtsh/wrtsh1.cxx11
2 files changed, 15 insertions, 0 deletions
diff --git a/sw/qa/extras/ooxmlimport/ooxmlimport.cxx b/sw/qa/extras/ooxmlimport/ooxmlimport.cxx
index a24c3ab51aa7..fe9c686e50bd 100644
--- a/sw/qa/extras/ooxmlimport/ooxmlimport.cxx
+++ b/sw/qa/extras/ooxmlimport/ooxmlimport.cxx
@@ -2118,6 +2118,10 @@ DECLARE_OOXMLIMPORT_TEST(testChartSize, "chart-size.docx")
uno::Reference<container::XIndexAccess> xEmbeddedObjects(xTextEmbeddedObjectsSupplier->getEmbeddedObjects(), uno::UNO_QUERY);
// This was 10954.
CPPUNIT_ASSERT_EQUAL(sal_Int32(6008), getProperty<sal_Int32>(xEmbeddedObjects->getByIndex(0), "Width"));
+
+ // Layout modified the document when it had this chart.
+ uno::Reference<util::XModifiable> xModifiable(mxComponent, uno::UNO_QUERY);
+ CPPUNIT_ASSERT_EQUAL(false, bool(xModifiable->isModified()));
}
DECLARE_OOXMLIMPORT_TEST(testInlineGroupshape, "inline-groupshape.docx")
diff --git a/sw/source/uibase/wrtsh/wrtsh1.cxx b/sw/source/uibase/wrtsh/wrtsh1.cxx
index dbd8c055eec9..6c03ee9c7a3e 100644
--- a/sw/source/uibase/wrtsh/wrtsh1.cxx
+++ b/sw/source/uibase/wrtsh/wrtsh1.cxx
@@ -650,7 +650,18 @@ void SwWrtShell::CalcAndSetScale( svt::EmbeddedObjectRef& xObj,
awt::Size aSz;
aSz.Width = aSize.Width();
aSz.Height = aSize.Height();
+
+ // Action 'setVisualAreaSize' doesn't have to change the
+ // modified state of the document, either.
+ bool bModified = false;
+ uno::Reference<util::XModifiable> xModifiable(xObj->getComponent(), uno::UNO_QUERY);
+ if (xModifiable.is())
+ bModified = xModifiable->isModified();
xObj->setVisualAreaSize( nAspect, aSz );
+ xModifiable.set(xObj->getComponent(), uno::UNO_QUERY);
+ if (xModifiable.is())
+ xModifiable->setModified(bModified);
+
// #i48419# - action 'UpdateReplacement' doesn't
// have to change the modified state of the document.
// This is only a workaround for the defect, that this action