projects
/
pspp
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge remote-tracking branch 'origin/sheet'
[pspp]
/
src
/
output
/
cairo.c
diff --git
a/src/output/cairo.c
b/src/output/cairo.c
index 4452b46a8c40b569a06b7cbbf9fc6a8581edd4b9..ef0b593233e67f7e03867926d35753536314166f 100644
(file)
--- a/
src/output/cairo.c
+++ b/
src/output/cairo.c
@@
-1,5
+1,5
@@
/* PSPP - a program for statistical analysis.
/* PSPP - a program for statistical analysis.
- Copyright (C) 2009, 2010, 2011, 2012, 2013, 2014, 2015 Free Software Foundation, Inc.
+ Copyright (C) 2009, 2010, 2011, 2012, 2013, 2014, 2015
, 2016
Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@
-1078,12
+1078,14
@@
xr_layout_cell_text (struct xr_driver *xr,
{
if (brk && clip[H][0] != clip[H][1])
best = bottom;
{
if (brk && clip[H][0] != clip[H][1])
best = bottom;
- *brk = bottom;
+ if (brk)
+ *brk = bottom;
}
else
break;
}
while (pango_layout_iter_next_line (iter));
}
else
break;
}
while (pango_layout_iter_next_line (iter));
+ pango_layout_iter_free (iter);
/* If enabled, draws a green line across the chosen breakpoint, which can
be useful for debugging issues with breaking. */
/* If enabled, draws a green line across the chosen breakpoint, which can
be useful for debugging issues with breaking. */
@@
-1306,7
+1308,7
@@
xr_rendering_create_text (struct xr_driver *xr, const char *text, cairo_t *cr)
return r;
}
return r;
}
-void
+void
xr_rendering_apply_options (struct xr_rendering *xr, struct string_map *o)
{
if (is_table_item (xr->item))
xr_rendering_apply_options (struct xr_rendering *xr, struct string_map *o)
{
if (is_table_item (xr->item))
@@
-1540,13
+1542,20
@@
xr_chart_render (struct xr_render_fsm *fsm, struct xr_driver *xr)
{
struct xr_chart_state *cs = UP_CAST (fsm, struct xr_chart_state, fsm);
{
struct xr_chart_state *cs = UP_CAST (fsm, struct xr_chart_state, fsm);
- if (xr->y > 0)
+ const int chart_height = 0.8 * (xr->length < xr->width ? xr->length : xr->width);
+
+ if (xr->y > xr->length - chart_height)
return true;
if (xr->cairo != NULL)
return true;
if (xr->cairo != NULL)
- xr_draw_chart (cs->chart_item, xr->cairo, 0.0, 0.0,
- xr_to_pt (xr->width), xr_to_pt (xr->length));
- xr->y = xr->length;
+ {
+ xr_draw_chart (cs->chart_item, xr->cairo,
+ 0.0,
+ xr_to_pt (xr->y),
+ xr_to_pt (xr->width),
+ xr_to_pt (chart_height));
+ }
+ xr->y += chart_height;
return false;
}
return false;
}