summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTor Lillqvist <tml@collabora.com>2020-08-21 16:45:00 +0300
committerTor Lillqvist <tml@collabora.com>2020-08-24 10:11:43 +0300
commitf061447e8ddac378bcb009a7f5f43c2674ad80ac (patch)
treed45f175345d3747af1e2dbcbc4edb1fadf666bd2
parentf0365d85149f6fd2cde4548f2242222a97ffc637 (diff)
Bin overly eager bypass of code section that stops replacement image creation
The skipping causes a customer's Java code that handles some .odt document to unexpectedly not create object replacement images in the document. The problem is that in the bad case, the SwTextShell is created later than .uno:UpdateAll is dispatched, so the dispatch does nothing. SwBaseShell::Execute() for FN_UPDATE_ALL is not called. And this is required, becase that calls setUserAllowsLinkUpdate(true), so that on save, when EmbeddedObjectContainer::StoreAsChildren() in comphelper/ hits the 'if ( !xStream.is() && getUserAllowsLinkUpdate() )' condition, then we create a replacement image. This is a Basic script that demonstrates the same issue: desktop = CreateUnoService("com.sun.star.frame.Desktop") Dim props(0) as new com.sun.star.beans.PropertyValue props(0).Name = "Hidden" props(0).Value = true component = desktop.loadComponentFromURL("file:///.../test.odt", "_default", 0, props) dispatcher = createUnoService("com.sun.star.frame.DispatchHelper") frame = component.CurrentController.Frame dispatcher.executeDispatch(frame, ".uno:UpdateAll", "", 0, Array()) component.storeSelf(Array()) component.dispose() Change-Id: I4a5f78a2118a387f062c2d5213a0012a7df2dd9f
-rw-r--r--sw/source/uibase/uiview/view.cxx3
1 files changed, 1 insertions, 2 deletions
diff --git a/sw/source/uibase/uiview/view.cxx b/sw/source/uibase/uiview/view.cxx
index a9edfaf86e00..89cb4d9335fa 100644
--- a/sw/source/uibase/uiview/view.cxx
+++ b/sw/source/uibase/uiview/view.cxx
@@ -1344,8 +1344,7 @@ void SwView::ReadUserDataSequence ( const uno::Sequence < beans::PropertyValue >
if (bGotVisibleBottom)
{
Point aCursorPos( nX, nY );
- const long nAdd = m_pWrtShell->GetViewOptions()->getBrowseMode() ? DOCUMENTBORDER : DOCUMENTBORDER*2;
- if (nBottom <= (m_pWrtShell->GetDocSize().Height()+nAdd) )
+
{
m_pWrtShell->EnableSmooth( false );
const tools::Rectangle aVis( nLeft, nTop, nRight, nBottom );