Accepting request 862706 from LibreOffice:7.0
- Fix bsc#1178807 - LO-L3: Text box from PowerPoint renders vertically instead of horizontally * bsc1178807.diff OBS-URL: https://build.opensuse.org/request/show/862706 OBS-URL: https://build.opensuse.org/package/show/LibreOffice:Factory/libreoffice?expand=0&rev=932
This commit is contained in:
parent
5ab8a97adc
commit
8aef9d8529
79
bsc1178807.diff
Normal file
79
bsc1178807.diff
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
From 0bd430959f1605cb7ab5ab2efdb4b6fd217cd8c2 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Miklos Vajna <vmiklos@collabora.com>
|
||||||
|
Date: Wed, 6 Jan 2021 10:23:44 +0100
|
||||||
|
Subject: [PATCH] bsc1178807.diff
|
||||||
|
|
||||||
|
tdf#134288 svx: fix rendering of text on a zero-width shape
|
||||||
|
|
||||||
|
We have conflicting requirements here: on one hand, the shape is zero
|
||||||
|
width, so the text area is also zero. On the other hand, we put some
|
||||||
|
text on the shape, which should be visible.
|
||||||
|
|
||||||
|
The result was that the left/right text margin (2x250 mm100) was counted
|
||||||
|
as part of the text area, so we put a few (but not 1) characters / line
|
||||||
|
for zero width. Fix this to be PowerPoint-compatible: as the width
|
||||||
|
decreases, we break the text up to more and more lines, but if the width
|
||||||
|
is 0, then we don't break it up at all.
|
||||||
|
|
||||||
|
An alternative would be to do this later in
|
||||||
|
SdrTextObj::impDecomposeBlockTextPrimitive(), but there we no longer
|
||||||
|
know the width is really 0, because the text margins and some small
|
||||||
|
increase (+1 to be an inclusive range, +1 to have a non-zero scale) is
|
||||||
|
already added to the original width.
|
||||||
|
|
||||||
|
(cherry picked from commit 65e2ef43f186164729e1cc071b805bc1a7125cfe)
|
||||||
|
|
||||||
|
Conflicts:
|
||||||
|
svx/qa/unit/sdr.cxx
|
||||||
|
|
||||||
|
Change-Id: Ieaa3e726bc5d37983b6221452e14f01db315f790
|
||||||
|
---
|
||||||
|
.../sdr/primitive2d/sdrdecompositiontools.cxx | 28 +++++++++++++++++--
|
||||||
|
1 file changed, 26 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/svx/source/sdr/primitive2d/sdrdecompositiontools.cxx b/svx/source/sdr/primitive2d/sdrdecompositiontools.cxx
|
||||||
|
index 2ee2bb625e2d..801190f5e92a 100644
|
||||||
|
--- a/svx/source/sdr/primitive2d/sdrdecompositiontools.cxx
|
||||||
|
+++ b/svx/source/sdr/primitive2d/sdrdecompositiontools.cxx
|
||||||
|
@@ -278,12 +278,36 @@ namespace drawinglayer::primitive2d
|
||||||
|
|
||||||
|
// create a range describing the wanted text position and size (aTextAnchorRange). This
|
||||||
|
// means to use the text distance values here
|
||||||
|
- const basegfx::B2DPoint aTopLeft(aSnapRange.getMinX() + rText.getTextLeftDistance(), aSnapRange.getMinY() + rText.getTextUpperDistance());
|
||||||
|
- const basegfx::B2DPoint aBottomRight(aSnapRange.getMaxX() - rText.getTextRightDistance(), aSnapRange.getMaxY() - rText.getTextLowerDistance());
|
||||||
|
+ sal_Int32 nTextLeftDistance = rText.getTextLeftDistance();
|
||||||
|
+ // If the margin is larger than the entire width of the text area, then limit the
|
||||||
|
+ // margin.
|
||||||
|
+ if (nTextLeftDistance > aSnapRange.getWidth())
|
||||||
|
+ nTextLeftDistance = aSnapRange.getWidth();
|
||||||
|
+ sal_Int32 nTextRightDistance = rText.getTextRightDistance();
|
||||||
|
+ if (nTextRightDistance > aSnapRange.getWidth())
|
||||||
|
+ nTextRightDistance = aSnapRange.getWidth();
|
||||||
|
+ const basegfx::B2DPoint aTopLeft(aSnapRange.getMinX() + nTextLeftDistance,
|
||||||
|
+ aSnapRange.getMinY()
|
||||||
|
+ + rText.getTextUpperDistance());
|
||||||
|
+ const basegfx::B2DPoint aBottomRight(aSnapRange.getMaxX() - nTextRightDistance,
|
||||||
|
+ aSnapRange.getMaxY()
|
||||||
|
+ - rText.getTextLowerDistance());
|
||||||
|
basegfx::B2DRange aTextAnchorRange;
|
||||||
|
aTextAnchorRange.expand(aTopLeft);
|
||||||
|
aTextAnchorRange.expand(aBottomRight);
|
||||||
|
|
||||||
|
+ if (aTextAnchorRange.getWidth() == 0)
|
||||||
|
+ {
|
||||||
|
+ // If the shape has no width, then don't attempt to break the text into multiple
|
||||||
|
+ // lines, not a single character would satisfy a zero width requirement.
|
||||||
|
+ // SdrTextObj::impDecomposeBlockTextPrimitive() uses the same constant to
|
||||||
|
+ // effectively set no limits.
|
||||||
|
+ aTextAnchorRange.expand(
|
||||||
|
+ basegfx::B2DPoint(aTopLeft.getX() - 1000000, aTopLeft.getY()));
|
||||||
|
+ aTextAnchorRange.expand(
|
||||||
|
+ basegfx::B2DPoint(aBottomRight.getX() + 1000000, aBottomRight.getY()));
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
// now create a transformation from this basic range (aTextAnchorRange)
|
||||||
|
// #i121494# if we have no scale use at least 1.0 to have a carrier e.g. for
|
||||||
|
// mirror values, else these will get lost
|
||||||
|
--
|
||||||
|
2.26.2
|
||||||
|
|
@ -1,3 +1,9 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Jan 12 10:32:53 UTC 2021 - Andras Timar <andras.timar@collabora.com>
|
||||||
|
|
||||||
|
- Fix bsc#1178807 - LO-L3: Text box from PowerPoint renders vertically instead of horizontally
|
||||||
|
* bsc1178807.diff
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Sat Jan 2 11:07:57 UTC 2021 - Callum Farmer <gmbr3@opensuse.org>
|
Sat Jan 2 11:07:57 UTC 2021 - Callum Farmer <gmbr3@opensuse.org>
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# spec file for package libreoffice
|
# spec file for package libreoffice
|
||||||
#
|
#
|
||||||
# Copyright (c) 2020 SUSE LLC
|
# Copyright (c) 2021 SUSE LLC
|
||||||
#
|
#
|
||||||
# All modifications and additions to the file contributed by third parties
|
# All modifications and additions to the file contributed by third parties
|
||||||
# remain the property of their copyright owners, unless otherwise agreed
|
# remain the property of their copyright owners, unless otherwise agreed
|
||||||
@ -104,6 +104,8 @@ Patch5: bsc1178944.diff
|
|||||||
Patch6: bsc1178943.diff
|
Patch6: bsc1178943.diff
|
||||||
# Fix build with ICU 68
|
# Fix build with ICU 68
|
||||||
Patch7: icu68.patch
|
Patch7: icu68.patch
|
||||||
|
# Bug 1178807 - LO-L3: Text box from PowerPoint renders vertically instead of horizontally
|
||||||
|
Patch8: bsc1178807.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
|
||||||
# save time by relying on rpm check rather than doing stupid find+grep
|
# save time by relying on rpm check rather than doing stupid find+grep
|
||||||
@ -965,6 +967,7 @@ Provides %{langname} translations and additional resources (help files, etc.) fo
|
|||||||
%patch5 -p1
|
%patch5 -p1
|
||||||
%patch6 -p1
|
%patch6 -p1
|
||||||
%patch7 -p1
|
%patch7 -p1
|
||||||
|
%patch8 -p1
|
||||||
%patch990 -p1
|
%patch990 -p1
|
||||||
%patch991 -p1
|
%patch991 -p1
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user