Accepting request 349054 from LibreOffice:5.0
- bnc#945047 - LO-L3: LO is duplicating master pages * bnc-945047.diff OBS-URL: https://build.opensuse.org/request/show/349054 OBS-URL: https://build.opensuse.org/package/show/LibreOffice:Factory/libreoffice?expand=0&rev=351
This commit is contained in:
parent
413a8b1c34
commit
d2a76cd3d3
104
bnc-945047.diff
Normal file
104
bnc-945047.diff
Normal file
@ -0,0 +1,104 @@
|
|||||||
|
From 0b6c9ddce0478bbedc36e8531f31b154bbce661c Mon Sep 17 00:00:00 2001
|
||||||
|
From: Mike Kaganski <mike.kaganski@collabora.com>
|
||||||
|
Date: Thu, 3 Dec 2015 19:05:03 +1000
|
||||||
|
Subject: [PATCH] tdf#96206: Avoid scaling objects while copying to clipboard
|
||||||
|
|
||||||
|
... to prevent duplicating masters on slide copy-paste.
|
||||||
|
Also fixed a 10-year copy-paste error (pRefPage wasn't replaced
|
||||||
|
with pNPage).
|
||||||
|
Fixed argument evaluation order issue (aStream.GetEndOfData()
|
||||||
|
depends on Flush() but doesn't call it, so will return incorrect
|
||||||
|
result if called before aStream.GetBuffer()).
|
||||||
|
Replaced compare of hashes with results of stringify(),
|
||||||
|
because it removes useless overhead (hashes are calculated from
|
||||||
|
stringify() anyway, and are not cached anywhere).
|
||||||
|
Removed Flush() called from SvMemoryStream::GetBuffer(), because
|
||||||
|
it calls GetData(), which calls Flush() itself.
|
||||||
|
|
||||||
|
Change-Id: Ia46d4e9a017fc628d424949a9d229045a249a4ca
|
||||||
|
---
|
||||||
|
sd/source/core/drawdoc3.cxx | 22 ++++++++++++++++------
|
||||||
|
svx/source/svdraw/svdobj.cxx | 1 +
|
||||||
|
tools/source/stream/stream.cxx | 1 -
|
||||||
|
3 files changed, 17 insertions(+), 7 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/sd/source/core/drawdoc3.cxx b/sd/source/core/drawdoc3.cxx
|
||||||
|
index 3f966e8..cb15650 100644
|
||||||
|
--- a/sd/source/core/drawdoc3.cxx
|
||||||
|
+++ b/sd/source/core/drawdoc3.cxx
|
||||||
|
@@ -51,6 +51,7 @@
|
||||||
|
#include "strmname.h"
|
||||||
|
#include "anminfo.hxx"
|
||||||
|
#include "customshowlist.hxx"
|
||||||
|
+#include "sdxfer.hxx"
|
||||||
|
|
||||||
|
#include "../ui/inc/unmovss.hxx"
|
||||||
|
#include "../ui/inc/unchss.hxx"
|
||||||
|
@@ -110,7 +111,7 @@ void InsertBookmarkAsPage_FindDuplicateLayouts::operator()( SdDrawDocument& rDoc
|
||||||
|
{
|
||||||
|
// Ignore Layouts with "Default" these seem to be special - in the sense that there are lot of assumption all over Impress
|
||||||
|
// about this
|
||||||
|
- if( bRenameDuplicates && aTest != OUString( SdResId( STR_LAYOUT_DEFAULT_NAME ) ) && pTestPage->getHash() != pBMMPage->getHash() )
|
||||||
|
+ if( bRenameDuplicates && aTest != OUString( SdResId( STR_LAYOUT_DEFAULT_NAME ) ) && pTestPage->stringify() != pBMMPage->stringify() )
|
||||||
|
{
|
||||||
|
pBookmarkDoc->RenameLayoutTemplate( pBMMPage->GetLayoutName(), OUString(pBMMPage->GetName())+=OUString("_") );
|
||||||
|
aLayout = pBMMPage->GetName();
|
||||||
|
@@ -438,17 +439,26 @@ bool SdDrawDocument::InsertBookmarkAsPage(
|
||||||
|
sal_Int32 nNRight = pNPage->GetRgtBorder();
|
||||||
|
sal_Int32 nNUpper = pNPage->GetUppBorder();
|
||||||
|
sal_Int32 nNLower = pNPage->GetLwrBorder();
|
||||||
|
- Orientation eNOrient = pRefPage->GetOrientation();
|
||||||
|
+ Orientation eNOrient = pNPage->GetOrientation();
|
||||||
|
|
||||||
|
// Adapt page size and margins to those of the later pages?
|
||||||
|
pRefPage = GetSdPage(nSdPageCount - 1, PK_STANDARD);
|
||||||
|
|
||||||
|
if( bNoDialogs )
|
||||||
|
{
|
||||||
|
- if( rBookmarkList.empty() )
|
||||||
|
- bScaleObjects = pRefPage->IsScaleObjects();
|
||||||
|
- else
|
||||||
|
- bScaleObjects = true;
|
||||||
|
+ // If this is clipboard, then no need to scale objects:
|
||||||
|
+ // this will make copied masters to differ from the originals,
|
||||||
|
+ // and thus InsertBookmarkAsPage_FindDuplicateLayouts will
|
||||||
|
+ // duplicate masters on insert to same document
|
||||||
|
+ bool bIsClipBoard = (SD_MOD()->pTransferClip &&
|
||||||
|
+ SD_MOD()->pTransferClip->GetWorkDocument() == this);
|
||||||
|
+ if (!bIsClipBoard)
|
||||||
|
+ {
|
||||||
|
+ if (rBookmarkList.empty())
|
||||||
|
+ bScaleObjects = pRefPage->IsScaleObjects();
|
||||||
|
+ else
|
||||||
|
+ bScaleObjects = true;
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
diff --git a/svx/source/svdraw/svdobj.cxx b/svx/source/svdraw/svdobj.cxx
|
||||||
|
index b6d3827..b712850 100644
|
||||||
|
--- a/svx/source/svdraw/svdobj.cxx
|
||||||
|
+++ b/svx/source/svdraw/svdobj.cxx
|
||||||
|
@@ -1776,6 +1776,7 @@ OString SdrObject::stringify() const
|
||||||
|
SfxItemSet aSet(GetMergedItemSet());
|
||||||
|
aSet.InvalidateDefaultItems();
|
||||||
|
aSet.Store(aStream, true);
|
||||||
|
+ aStream.Flush(); // for correct results from aStream.GetEndOfData()
|
||||||
|
aString.append(static_cast<const char *>(aStream.GetBuffer()), aStream.GetEndOfData());
|
||||||
|
|
||||||
|
return aString.makeStringAndClear();
|
||||||
|
diff --git a/tools/source/stream/stream.cxx b/tools/source/stream/stream.cxx
|
||||||
|
index bb6d21e..17bdcd1 100644
|
||||||
|
--- a/tools/source/stream/stream.cxx
|
||||||
|
+++ b/tools/source/stream/stream.cxx
|
||||||
|
@@ -1723,7 +1723,6 @@ SvMemoryStream::~SvMemoryStream()
|
||||||
|
|
||||||
|
const void* SvMemoryStream::GetBuffer()
|
||||||
|
{
|
||||||
|
- Flush();
|
||||||
|
return GetData();
|
||||||
|
}
|
||||||
|
|
||||||
|
--
|
||||||
|
2.1.4
|
||||||
|
|
@ -4,6 +4,12 @@ Tue Dec 15 11:47:08 UTC 2015 - tchvatal@suse.com
|
|||||||
- Version update to 5.0.4.2:
|
- Version update to 5.0.4.2:
|
||||||
* Final of the 5.0.4 series
|
* Final of the 5.0.4 series
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Dec 14 22:23:15 UTC 2015 - andras.timar@collabora.com
|
||||||
|
|
||||||
|
- bnc#945047 - LO-L3: LO is duplicating master pages
|
||||||
|
* bnc-945047.diff
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Fri Dec 11 12:13:27 UTC 2015 - tchvatal@suse.com
|
Fri Dec 11 12:13:27 UTC 2015 - tchvatal@suse.com
|
||||||
|
|
||||||
|
@ -177,6 +177,8 @@ Patch11: bnc-679938.diff
|
|||||||
Patch12: use-long-for-test-comparsion.patch
|
Patch12: use-long-for-test-comparsion.patch
|
||||||
# bnc#954345 - LO-L3: Insert-->Image-->Insert as Link hangs writer
|
# bnc#954345 - LO-L3: Insert-->Image-->Insert as Link hangs writer
|
||||||
Patch13: bnc-954345.diff
|
Patch13: bnc-954345.diff
|
||||||
|
# bnc#945047 - LO-L3: LO is duplicating master pages
|
||||||
|
Patch14: bnc-945047.diff
|
||||||
# try to save space by using hardlinks
|
# try to save space by using hardlinks
|
||||||
Patch990: install-with-hardlinks.diff
|
Patch990: install-with-hardlinks.diff
|
||||||
BuildRequires: %{name}-share-linker
|
BuildRequires: %{name}-share-linker
|
||||||
@ -1008,6 +1010,7 @@ Provides additional %{langname} translations and resources for %{project}. \
|
|||||||
%patch11 -p1
|
%patch11 -p1
|
||||||
%patch12 -p1
|
%patch12 -p1
|
||||||
%patch13 -p1
|
%patch13 -p1
|
||||||
|
%patch14 -p1
|
||||||
%patch990 -p1
|
%patch990 -p1
|
||||||
# 256x256 icons
|
# 256x256 icons
|
||||||
tar -xjf %{SOURCE20}
|
tar -xjf %{SOURCE20}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user