Mercurial > hg > octave-lyh
changeset 14498:36cfbd23fe9f
Fix papersize updater. Bug # 35908.
* grpahics.cc (figure::properities::update_papersize): Save papersize in
proper units. Add tests.
author | Ben Abbott <bpabbott@mac.com> |
---|---|
date | Mon, 26 Mar 2012 17:37:56 -0400 |
parents | 9fc75cdf61ab |
children | f6eb8337d077 60e5cf354d80 |
files | src/graphics.cc |
diffstat | 1 files changed, 37 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/graphics.cc +++ b/src/graphics.cc @@ -3585,8 +3585,8 @@ } else if (punits == "points") { - sz(0) = 72.0; - sz(1) = 72.0; + sz(0) /= 72.0; + sz(1) /= 72.0; } if (punits == "normalized") { @@ -3656,6 +3656,16 @@ // update_papersize and update_papertype papertype.set (typ); } + if (punits == "centimeters") + { + sz(0) *= 2.54; + sz(1) *= 2.54; + } + else if (punits == "points") + { + sz(0) *= 72.0; + sz(1) *= 72.0; + } if (get_paperorientation () == "landscape") { std::swap (sz(0), sz(1)); @@ -3663,6 +3673,31 @@ } } +/* +%!test +%! figure (1, "visible", "off"); +%! set (1, "paperunits", "inches"); +%! set (1, "papersize", [5, 4]) +%! set (1, "paperunits", "points"); +%! assert (get (1, "papersize"), [5, 4] * 72, 1) +%! papersize = get (gcf, "papersize"); +%! set (1, "papersize", papersize + 1); +%! set (1, "papersize", papersize) +%! assert (get (1, "papersize"), [5, 4] * 72, 1) +%! close (1) +%!test +%! figure (1, "visible", "off"); +%! set (1, "paperunits", "inches"); +%! set (1, "papersize", [5, 4]) +%! set (1, "paperunits", "centimeters"); +%! assert (get (1, "papersize"), [5, 4] * 2.54, 2.54/72) +%! papersize = get (gcf, "papersize"); +%! set (1, "papersize", papersize + 1); +%! set (1, "papersize", papersize) +%! assert (get (1, "papersize"), [5, 4] * 2.54, 2.54/72) +%! close (1) +*/ + void figure::properties::update_paperorientation (void) {