sw/qa/extras/ooxmlimport/ooxmlimport.cxx |    4 ++++
 sw/source/uibase/wrtsh/wrtsh1.cxx        |   11 +++++++++++
 2 files changed, 15 insertions(+)

New commits:
commit e2b260fc98e833d4e64426b90992094f2da0498c
Author: Miklos Vajna <vmik...@collabora.co.uk>
Date:   Tue Jun 3 12:44:37 2014 +0200

    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

diff --git a/sw/qa/extras/ooxmlimport/ooxmlimport.cxx 
b/sw/qa/extras/ooxmlimport/ooxmlimport.cxx
index a24c3ab..fe9c686 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 dbd8c05..6c03ee9 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
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to