Accepting request 391705 from LibreOffice:5.1
- Version update to 5.1.3.1: * Various small bugfixes all around 5.1 series - fix bnc#856729 - LO-L3: Double borders in Calc * bnc856729.patch OBS-URL: https://build.opensuse.org/request/show/391705 OBS-URL: https://build.opensuse.org/package/show/LibreOffice:Factory/libreoffice?expand=0&rev=400
This commit is contained in:
parent
5a1c428b5a
commit
bb8f8c342f
155
bnc856729.patch
Normal file
155
bnc856729.patch
Normal file
@ -0,0 +1,155 @@
|
||||
From a5928a57a53df84cacd2975e227f9e03d50456a6 Mon Sep 17 00:00:00 2001
|
||||
From: Miklos Vajna <vmiklos@collabora.co.uk>
|
||||
Date: Fri, 15 Apr 2016 15:46:06 +0200
|
||||
Subject: [PATCH] tdf#99315 VclPixelProcessor2D: fix double border line width
|
||||
|
||||
Regression from commit 2c91cb08d65cd35fa8ef6eaca3677aa82fb58cbe (better
|
||||
drawing support for borders of different width, fdo#33634, 2012-04-04),
|
||||
the problem is that previously the width of inner/outer double border
|
||||
lines got rounded to integer values quite early, but after the commit
|
||||
they are kept at a double precision for much longer, which needs pixel
|
||||
correction in VclPixelProcessor2D.
|
||||
|
||||
Example: if the border with is 1.47, and the line gets moved by 0.2
|
||||
pixels, then the inner and outer edge of the line will be 0.2 and 1.67,
|
||||
which gets rounded to 0 -> 2 in the pixel processor. Previously the
|
||||
input was rounded to 1, so moving by 0.2 resulted in 0.2 -> 1.2, which
|
||||
got rounded to 0 -> 1. The result is that sometimes the line width is 1
|
||||
pixel wider than expected.
|
||||
|
||||
Fix the problem by allowing VclPixelProcessor2D to request pixel
|
||||
correction from BorderLinePrimitive2D. It wouldn't be possible to do
|
||||
pixel correction only in VclPixelProcessor2D, as it has no idea what to
|
||||
correct: it only gets polygons, so it has no idea if e.g. the top of a
|
||||
polygon is the outer edge of a top border line or an inner edge of a
|
||||
bottom border line.
|
||||
|
||||
Conflicts:
|
||||
drawinglayer/source/primitive2d/borderlineprimitive2d.cxx
|
||||
|
||||
(cherry picked from commits 1ee570a4e625719f8bf270d372926c0d829ae6f0,
|
||||
555c9add26e06030402c73f885de98f4b96826f0,
|
||||
304f50684d3ac08e973fd27e6acf3e821394d164,
|
||||
422f10c5d7ebe6f4b778636c9c1eb6dbdf708a27,
|
||||
ce12a5021a080cc1781e0e0256af5e0085e11ef2 and
|
||||
cac70559013e575009657aa3c5168b88b1f14691)
|
||||
|
||||
Change-Id: I1971f3a952fbcdc598ab46c659e12d976c13cbe6
|
||||
Reviewed-on: https://gerrit.libreoffice.org/24238
|
||||
Tested-by: Jenkins <ci@libreoffice.org>
|
||||
Reviewed-by: Eike Rathke <erack@redhat.com>
|
||||
Tested-by: Eike Rathke <erack@redhat.com>
|
||||
---
|
||||
drawinglayer/CppunitTest_drawinglayer_border.mk | 52 +++++++
|
||||
drawinglayer/Module_drawinglayer.mk | 4 +
|
||||
drawinglayer/qa/unit/border.cxx | 150 +++++++++++++++++++++
|
||||
.../source/primitive2d/borderlineprimitive2d.cxx | 28 +++-
|
||||
.../source/processor2d/vclpixelprocessor2d.cxx | 7 +-
|
||||
.../primitive2d/borderlineprimitive2d.hxx | 2 +
|
||||
6 files changed, 239 insertions(+), 4 deletions(-)
|
||||
create mode 100644 drawinglayer/CppunitTest_drawinglayer_border.mk
|
||||
create mode 100644 drawinglayer/qa/unit/border.cxx
|
||||
|
||||
diff --git a/drawinglayer/source/primitive2d/borderlineprimitive2d.cxx b/drawinglayer/source/primitive2d/borderlineprimitive2d.cxx
|
||||
index 30e656d..30e7dcb 100644
|
||||
--- a/drawinglayer/source/primitive2d/borderlineprimitive2d.cxx
|
||||
+++ b/drawinglayer/source/primitive2d/borderlineprimitive2d.cxx
|
||||
@@ -28,6 +28,17 @@
|
||||
#include <numeric>
|
||||
#include <algorithm>
|
||||
|
||||
+#if defined(ANDROID)
|
||||
+namespace std
|
||||
+{
|
||||
+template<typename T>
|
||||
+T round(T x)
|
||||
+{
|
||||
+ return ::round(x);
|
||||
+}
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
namespace drawinglayer {
|
||||
|
||||
namespace {
|
||||
@@ -63,7 +74,7 @@ primitive2d::Primitive2DReference makeSolidLinePrimitive(
|
||||
const basegfx::B2DVector& rVector, const basegfx::BColor& rColor, double fLineWidth, double fGap)
|
||||
{
|
||||
const basegfx::B2DVector aPerpendicular = basegfx::getPerpendicular(rVector);
|
||||
- const basegfx::B2DVector aLineWidthOffset = ((fLineWidth + 1.0) * 0.5) * aPerpendicular;
|
||||
+ const basegfx::B2DVector aLineWidthOffset = (fLineWidth * 0.5) * aPerpendicular;
|
||||
|
||||
basegfx::B2DPolygon aPolygon;
|
||||
aPolygon.append(rStart + aLineWidthOffset);
|
||||
@@ -163,6 +174,11 @@ primitive2d::Primitive2DReference makeSolidLinePrimitive(
|
||||
|
||||
Primitive2DSequence BorderLinePrimitive2D::create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const
|
||||
{
|
||||
+ return createDecomposition(rViewInformation, false);
|
||||
+ }
|
||||
+
|
||||
+ Primitive2DSequence BorderLinePrimitive2D::createDecomposition(const geometry::ViewInformation2D& rViewInformation, bool bPixelCorrection) const
|
||||
+ {
|
||||
Primitive2DSequence xRetval;
|
||||
|
||||
if(!getStart().equal(getEnd()) && ( isInsideUsed() || isOutsideUsed() ) )
|
||||
@@ -199,8 +215,11 @@ primitive2d::Primitive2DReference makeSolidLinePrimitive(
|
||||
xRetval[0] = makeHairLinePrimitive(
|
||||
getStart(), getEnd(), aVector, getRGBColorLeft(), 0.0);
|
||||
else
|
||||
+ {
|
||||
+ double fWidth = bPixelCorrection ? std::round(fLeftWidth) : fLeftWidth;
|
||||
xRetval[0] = makeSolidLinePrimitive(
|
||||
- aClipRegion, aTmpStart, aTmpEnd, aVector, getRGBColorLeft(), fLeftWidth, -fLeftWidth/2.0);
|
||||
+ aClipRegion, aTmpStart, aTmpEnd, aVector, getRGBColorLeft(), fWidth, -fLeftWidth/2.0);
|
||||
+ }
|
||||
|
||||
// "outside" line
|
||||
|
||||
@@ -208,8 +227,11 @@ primitive2d::Primitive2DReference makeSolidLinePrimitive(
|
||||
xRetval[1] = makeHairLinePrimitive(
|
||||
getStart(), getEnd(), aVector, getRGBColorRight(), fLeftWidth+mfDistance);
|
||||
else
|
||||
+ {
|
||||
+ double fWidth = bPixelCorrection ? std::round(fRightWidth) : fRightWidth;
|
||||
xRetval[1] = makeSolidLinePrimitive(
|
||||
- aClipRegion, aTmpStart, aTmpEnd, aVector, getRGBColorRight(), fRightWidth, mfDistance+fRightWidth/2.0);
|
||||
+ aClipRegion, aTmpStart, aTmpEnd, aVector, getRGBColorRight(), fWidth, mfDistance+fRightWidth/2.0);
|
||||
+ }
|
||||
}
|
||||
else
|
||||
{
|
||||
diff --git a/drawinglayer/source/processor2d/vclpixelprocessor2d.cxx b/drawinglayer/source/processor2d/vclpixelprocessor2d.cxx
|
||||
index 8dcd74e..8398573 100644
|
||||
--- a/drawinglayer/source/processor2d/vclpixelprocessor2d.cxx
|
||||
+++ b/drawinglayer/source/processor2d/vclpixelprocessor2d.cxx
|
||||
@@ -1232,7 +1232,12 @@ namespace drawinglayer
|
||||
static_cast<const drawinglayer::primitive2d::BorderLinePrimitive2D&>(rCandidate);
|
||||
|
||||
if (!tryDrawBorderLinePrimitive2DDirect(rBorder))
|
||||
- process(rCandidate.get2DDecomposition(getViewInformation2D()));
|
||||
+ {
|
||||
+ if (rBorder.getStyle() == table::BorderLineStyle::DOUBLE)
|
||||
+ process(rBorder.createDecomposition(getViewInformation2D(), true));
|
||||
+ else
|
||||
+ process(rCandidate.get2DDecomposition(getViewInformation2D()));
|
||||
+ }
|
||||
|
||||
mpOutputDevice->SetAntialiasing(nAntiAliasing);
|
||||
break;
|
||||
diff --git a/include/drawinglayer/primitive2d/borderlineprimitive2d.hxx b/include/drawinglayer/primitive2d/borderlineprimitive2d.hxx
|
||||
index 72e04d5..f152f2d 100644
|
||||
--- a/include/drawinglayer/primitive2d/borderlineprimitive2d.hxx
|
||||
+++ b/include/drawinglayer/primitive2d/borderlineprimitive2d.hxx
|
||||
@@ -132,6 +132,8 @@ namespace drawinglayer
|
||||
bool hasGapColor( ) const { return mbHasGapColor; }
|
||||
short getStyle () const { return mnStyle; }
|
||||
double getPatternScale() const { return mfPatternScale; }
|
||||
+ /// Same as create2DDecomposition(), but can do pixel correction if requested.
|
||||
+ Primitive2DSequence createDecomposition(const geometry::ViewInformation2D& rViewInformation, bool bPixelCorrection) const;
|
||||
|
||||
/// compare operator
|
||||
virtual bool operator==(const BasePrimitive2D& rPrimitive) const override;
|
||||
--
|
||||
2.6.6
|
||||
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:54ecdc9e0201a64fb6a0898b2e5ebd6c6e22c36965e3eb797ae351219e441781
|
||||
size 173763036
|
3
libreoffice-5.1.3.1.tar.xz
Normal file
3
libreoffice-5.1.3.1.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:079898348a8a3402d973d2ac990086530b8bbf8b0c5fa0573c8f377563fd6e16
|
||||
size 176074904
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:dc4d9fd6ca78ad89069ca1f0187f274c9cd83fb8849716193d25bce6ca072953
|
||||
size 1900736
|
3
libreoffice-help-5.1.3.1.tar.xz
Normal file
3
libreoffice-help-5.1.3.1.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:568cb8371bf0f76186c3f7910f431d84605306e074ad58cadff1200f8c0f4ac7
|
||||
size 1904828
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:7fbf0d742df7d9a5cf567bb8b8d78e16160936a6f339b9d035e0ac9e1d2455f0
|
||||
size 131600616
|
3
libreoffice-translations-5.1.3.1.tar.xz
Normal file
3
libreoffice-translations-5.1.3.1.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:669ac36799ffdc8332588bd44f00059d0f31de1ade4632ceb1209330f581ddf6
|
||||
size 131716304
|
@ -1,3 +1,15 @@
|
||||
-------------------------------------------------------------------
|
||||
Tue Apr 26 09:46:38 UTC 2016 - andras.timar@collabora.com
|
||||
|
||||
- Version update to 5.1.3.1:
|
||||
* Various small bugfixes all around 5.1 series
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Apr 26 09:10:05 UTC 2016 - andras.timar@collabora.com
|
||||
|
||||
- fix bnc#856729 - LO-L3: Double borders in Calc
|
||||
* bnc856729.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Apr 23 07:09:45 UTC 2016 - dmueller@suse.com
|
||||
|
||||
@ -48,7 +60,7 @@ Fri Mar 11 20:41:35 UTC 2016 - tchvatal@suse.com
|
||||
Fri Mar 11 17:17:22 UTC 2016 - tchvatal@suse.com
|
||||
|
||||
- Version update to 5.1.1.3:
|
||||
* Various bugfixes for the first bugfix release of 5.1
|
||||
* Various bugfixes for the first bugfix release of 5.1
|
||||
- Update patch to build on sle11
|
||||
* 0001-liborcus-0.11.patch
|
||||
|
||||
|
@ -22,7 +22,7 @@
|
||||
%define numbertext_version 0.9.5
|
||||
# Urls
|
||||
%define external_url http://dev-www.libreoffice.org/src/
|
||||
%define tarball_url http://download.documentfoundation.org/libreoffice/src/5.1.2
|
||||
%define tarball_url http://download.documentfoundation.org/libreoffice/src/5.1.3
|
||||
# Old Make and bundle or not
|
||||
%if 0%{?suse_version} > 1230
|
||||
%bcond_with oldmake
|
||||
@ -64,7 +64,7 @@ Requires: python-importlib
|
||||
%endif
|
||||
# This is used due to the need for beta releases
|
||||
Name: libreoffice
|
||||
Version: 5.1.2.2
|
||||
Version: 5.1.3.1
|
||||
Release: 0
|
||||
Summary: A Free Office Suite (Framework)
|
||||
License: Apache-2.0 and Artistic-1.0 and BSD-3-Clause and BSD-4-Clause and GPL-2.0+ and LPPL-1.3c and LGPL-2.1+ and LGPL-3.0 and MPL-1.1 and MIT and SUSE-Public-Domain and W3C
|
||||
@ -178,6 +178,8 @@ Patch14: 0002-boost-filesystem1.patch
|
||||
Patch15: 0003-boost-filesystem2.patch
|
||||
# PATCH-HOTFIX-UPSTREAM: disable test that rounds wrongly on most archs
|
||||
Patch16: libreoffice-hotfix-disablebrokenshapetest.patch
|
||||
# bnc#856729 - LO-L3: fix double borders in Calc
|
||||
Patch17: bnc856729.patch
|
||||
# try to save space by using hardlinks
|
||||
Patch990: install-with-hardlinks.diff
|
||||
BuildRequires: %{name}-share-linker
|
||||
@ -507,7 +509,7 @@ and obsoleted the old Industrial theme.
|
||||
%package glade
|
||||
Summary: Support for creating LibreOffice dialogs in glade
|
||||
License: Apache-2.0 and Artistic-1.0 and BSD-3-Clause and BSD-4-Clause and GPL-2.0+ and LPPL-1.3c and LGPL-2.1+ and LGPL-3.0 and MPL-1.1 and MIT and SUSE-Public-Domain and W3C
|
||||
Group: Productivity/Office/Suite
|
||||
Group: Productivity/Office/Suite
|
||||
Requires: %{name} = %{version}
|
||||
%if %{with noarch_subpkgs}
|
||||
BuildArch: noarch
|
||||
@ -1073,6 +1075,7 @@ Provides additional %{langname} translations and resources for %{project}. \
|
||||
%patch14 -p1
|
||||
%patch15 -p1
|
||||
%patch16 -p1
|
||||
%patch17 -p1
|
||||
%patch990 -p1
|
||||
# 256x256 icons
|
||||
tar -xjf %{SOURCE20}
|
||||
|
Loading…
x
Reference in New Issue
Block a user