[gnumeric] Fix text wrap in paths and other shaoes when printing.



commit 47c82349553f68ed9202b53dc9d6948a0b8a98c6
Author: Jean Brefort <jean brefort normalesup org>
Date:   Fri Jul 19 10:27:08 2013 +0200

    Fix text wrap in paths and other shaoes when printing.

 ChangeLog           |    6 ++++++
 src/gnm-so-filled.c |   12 ++++++------
 src/gnm-so-path.c   |   10 ++++++----
 3 files changed, 18 insertions(+), 10 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 23bd596..6c2ade4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2013-07-19  Jean Brefort  <jean brefort normalesup org>
+
+       * src/gnm-so-filled.c (gnm_so_filled_draw_cairo): fix text wrap when
+       printing.
+       * src/gnm-so-path.c (gnm_so_path_draw_cairo): ditto.
+
 2013-07-18  Andreas J. Guelzow <aguelzow pyrshep ca>
 
        * src/gnm-so-path.c (gnm_so_path_class_init): add new property
diff --git a/src/gnm-so-filled.c b/src/gnm-so-filled.c
index a0f9e76..3cbca10 100644
--- a/src/gnm-so-filled.c
+++ b/src/gnm-so-filled.c
@@ -206,10 +206,8 @@ cb_gnm_so_filled_changed (GnmSOFilled const *sof,
                h -= (sof->margin_pts.top + sof->margin_pts.bottom)
                        / scale;
                h = MAX (h, DBL_MIN);
-printf("w=%g h=%g\n",w,h);
                if (group->text == NULL) {
                        if (sof->is_oval) {
-puts("oval");
                                group->text = goc_item_new (GOC_GROUP (group), GOC_TYPE_TEXT,
                                        "anchor",       GO_ANCHOR_CENTER,
                                        "clip",         TRUE,
@@ -295,14 +293,16 @@ gnm_so_filled_draw_cairo (SheetObject const *so, cairo_t *cr,
        /* Draw the text. */
        if (sof->text != NULL && *(sof->text) != '\0') {
                PangoLayout *pl = pango_cairo_create_layout (cr);
+               double const scale_h = 72. / gnm_app_display_dpi_get (TRUE);
+               double const scale_v = 72. / gnm_app_display_dpi_get (FALSE);
                double pl_height = (height - sof->margin_pts.top
-                                   - sof->margin_pts.bottom) * PANGO_SCALE;
+                                   - sof->margin_pts.bottom) * PANGO_SCALE
+                                   / scale_v;
                double pl_width = (width - sof->margin_pts.left
-                                  - sof->margin_pts.right) * PANGO_SCALE;
+                                  - sof->margin_pts.right) * PANGO_SCALE
+                                  / scale_h;
                /* set a font, a very bad solution, but will do until we move to GOString */
                PangoFontDescription *desc = pango_font_description_from_string ("Sans 10");
-               double const scale_h = 72. / gnm_app_display_dpi_get (TRUE);
-               double const scale_v = 72. / gnm_app_display_dpi_get (FALSE);
                pango_layout_set_font_description (pl, desc);
                pango_layout_set_text (pl, sof->text, -1);
                pango_layout_set_attributes (pl, sof->markup);
diff --git a/src/gnm-so-path.c b/src/gnm-so-path.c
index a683fda..543aca3 100644
--- a/src/gnm-so-path.c
+++ b/src/gnm-so-path.c
@@ -329,14 +329,16 @@ gnm_so_path_draw_cairo (SheetObject const *so, cairo_t *cr,
        /* Draw the text. */
        if (sop->text != NULL && *(sop->text) != '\0') {
                PangoLayout *pl = pango_cairo_create_layout (cr);
+               double const scale_h = 72. / gnm_app_display_dpi_get (TRUE);
+               double const scale_v = 72. / gnm_app_display_dpi_get (FALSE);
                double pl_height = (height - sop->margin_pts.top
-                                   - sop->margin_pts.bottom) * PANGO_SCALE;
+                                   - sop->margin_pts.bottom) * PANGO_SCALE
+                                   / scale_v;
                double pl_width = (width - sop->margin_pts.left
-                                  - sop->margin_pts.right) * PANGO_SCALE;
+                                  - sop->margin_pts.right) * PANGO_SCALE
+                                  / scale_h;
                /* set a font, a very bad solution, but will do until we move to GOString */
                PangoFontDescription *desc = pango_font_description_from_string ("Sans 10");
-               double const scale_h = 72. / gnm_app_display_dpi_get (TRUE);
-               double const scale_v = 72. / gnm_app_display_dpi_get (FALSE);
                PangoRectangle r;
                pango_layout_set_font_description (pl, desc);
                pango_layout_set_text (pl, sop->text, -1);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]