[gnumeric] Implement wrapping of rotated text. [#394]
- From: Jean Bréfort <jbrefort src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnumeric] Implement wrapping of rotated text. [#394]
- Date: Thu, 19 Sep 2019 06:32:51 +0000 (UTC)
commit 9c6a3d0c69b3698d3ac38abfe2988876835ebef4
Author: Jean Brefort <jean brefort normalesup org>
Date: Thu Sep 19 08:30:40 2019 +0200
Implement wrapping of rotated text. [#394]
ChangeLog | 5 +++++
NEWS | 1 +
src/cell-draw.c | 10 ++++++++++
3 files changed, 16 insertions(+)
---
diff --git a/ChangeLog b/ChangeLog
index 884dc3f7a..b4412130e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-19 Jean Brefort <jean brefort normalesup org>
+
+ * src/cell-draw.c (cell_calc_layout): implement wrapping of rotated text.
+ Fixes #394.
+
2019-09-16 Jean Brefort <jean brefort normalesup org>
* src/graph.c (gnm_go_data_vector_get_str): load strings from arrays.
diff --git a/NEWS b/NEWS
index 288a7f865..6f29514f1 100644
--- a/NEWS
+++ b/NEWS
@@ -6,6 +6,7 @@ Andreas:
Jean:
* Fix charts size in XLS format. [#414]
* Fix loading string from arrays in charts. [#416]
+ * Implement wrapping of rotated text. [#394]
Morten:
* Fix over-eager guessing of dates in csv. [#401]
diff --git a/src/cell-draw.c b/src/cell-draw.c
index 9ca0d5608..bb26aa09d 100644
--- a/src/cell-draw.c
+++ b/src/cell-draw.c
@@ -133,6 +133,16 @@ cell_calc_layout (G_GNUC_UNUSED GnmCell const *cell, GnmRenderedValue *rv, int y
if (rv->rotation && !rv->noborders) {
GnmRenderedRotatedValue const *rrv = (GnmRenderedRotatedValue *)rv;
+ if (rv->wrap_text) {
+ /* quick fix for #394, may be not perfect */
+ double rot = rv->rotation / 180. * M_PI, actual_width;
+ actual_width = MAX (0, width - indent) * cos (rot) + height * fabs (sin (rot));
+ if (actual_width > pango_layout_get_width (layout)) {
+ pango_layout_set_wrap (layout, PANGO_WRAP_WORD_CHAR);
+ pango_layout_set_width (layout, actual_width);
+ gnm_rendered_value_remeasure (rv);
+ }
+ }
if (rrv->sin_a_neg) {
hoffset += (width - indent) - rv->layout_natural_width;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]