libreoffice/orcus-0.13.3.patch

68 lines
3.1 KiB
Diff

From 20945a9a4de6684010fd5b3603595e6da543807d Mon Sep 17 00:00:00 2001
From: Kohei Yoshida <kohei.yoshida@gmail.com>
Date: Wed, 31 Jan 2018 21:27:44 -0500
Subject: Correctly import solid fill color.
In orcus, a solid fill type uses the foreground color only and ignores
the background color. Also, let's not use the alpha component as it
would cause the color to not get rendered at all.
Some patches are applied against liborcus in order to adjust the ODF
styles import code for this change. These changes will be incorporated
in 0.13.3.
Change-Id: I9e8c243cc6a7f366de2393e7b7ecf77366f5f9ea
Reviewed-on: https://gerrit.libreoffice.org/49071
Reviewed-by: Kohei Yoshida <libreoffice@kohei.us>
Tested-by: Kohei Yoshida <libreoffice@kohei.us>
---
...-of-0-means-fully-transparent.-I-m-sure-2.patch | 50 ++++++++++++++++++++++
...osed-to-use-the-foreground-color-for-soli.patch | 49 +++++++++++++++++++++
external/liborcus/UnpackedTarball_liborcus.mk | 2 +
sc/source/filter/orcus/interface.cxx | 15 ++++---
4 files changed, 111 insertions(+), 5 deletions(-)
create mode 100644 external/liborcus/0001-Alpha-value-of-0-means-fully-transparent.-I-m-sure-2.patch
create mode 100644 external/liborcus/0002-We-are-supposed-to-use-the-foreground-color-for-soli.patch
diff --git a/sc/source/filter/orcus/interface.cxx b/sc/source/filter/orcus/interface.cxx
index e40a71b..4cfd844 100644
--- a/sc/source/filter/orcus/interface.cxx
+++ b/sc/source/filter/orcus/interface.cxx
@@ -1148,7 +1148,8 @@ void ScOrcusStyles::fill::applyToItemSet(SfxItemSet& rSet) const
return;
}
- rSet.Put(SvxBrushItem(maBgColor, ATTR_BACKGROUND));
+ if (maPattern.equalsIgnoreAsciiCase("solid"))
+ rSet.Put(SvxBrushItem(maFgColor, ATTR_BACKGROUND));
}
ScOrcusStyles::protection::protection():
@@ -1574,15 +1575,19 @@ void ScOrcusStyles::set_fill_pattern_type(const char* s, size_t n)
maCurrentFill.mbHasFillAttr = true;
}
-void ScOrcusStyles::set_fill_fg_color(orcus::spreadsheet::color_elem_t alpha, orcus::spreadsheet::color_elem_t red, orcus::spreadsheet::color_elem_t green, orcus::spreadsheet::color_elem_t blue)
+void ScOrcusStyles::set_fill_fg_color(
+ orcus::spreadsheet::color_elem_t /*alpha*/, orcus::spreadsheet::color_elem_t red, orcus::spreadsheet::color_elem_t green, orcus::spreadsheet::color_elem_t blue)
{
- maCurrentFill.maFgColor = Color(alpha, red, green, blue);
+ // Ignore the alpha element for now.
+ maCurrentFill.maFgColor = Color(red, green, blue);
maCurrentFill.mbHasFillAttr = true;
}
-void ScOrcusStyles::set_fill_bg_color(orcus::spreadsheet::color_elem_t alpha, orcus::spreadsheet::color_elem_t red, orcus::spreadsheet::color_elem_t green, orcus::spreadsheet::color_elem_t blue)
+void ScOrcusStyles::set_fill_bg_color(
+ orcus::spreadsheet::color_elem_t /*alpha*/, orcus::spreadsheet::color_elem_t red, orcus::spreadsheet::color_elem_t green, orcus::spreadsheet::color_elem_t blue)
{
- maCurrentFill.maBgColor = Color(alpha, red, green, blue);
+ // Ignore the alpha element for now.
+ maCurrentFill.maBgColor = Color(red, green, blue);
maCurrentFill.mbHasFillAttr = true;
}
--
cgit v1.1