# HG changeset patch # User Ben Abbott # Date 1282957564 14400 # Node ID 91ff0d7ee94b6f3d4487d540bcbdca75b431d5fb # Parent 2a3279d117943e1458154eb2f49fda10dcb1c100 Don't pass figure handle to __calc_dimensions__. diff --git a/scripts/ChangeLog b/scripts/ChangeLog --- a/scripts/ChangeLog +++ b/scripts/ChangeLog @@ -1,5 +1,8 @@ 2010-08-27 Ben Abbott + * plot/colorbar.m, * plot/__go_draw_axes__.m, + plot/private/__actual_axis_position__.m: Don't pass figure handle to + __calc_dimensions__. * plot/private/__ghostscript__.m: Don't set anti-aliasing options for vector formats. * plot/__print_parse_opts__.m: Fix tests. diff --git a/scripts/plot/__go_draw_axes__.m b/scripts/plot/__go_draw_axes__.m --- a/scripts/plot/__go_draw_axes__.m +++ b/scripts/plot/__go_draw_axes__.m @@ -48,7 +48,7 @@ nd = __calc_dimensions__ (h); if (strcmpi (axis_obj.plotboxaspectratiomode, "manual")) - pos = __actual_axis_position__ (axis_obj); + pos = __actual_axis_position__ (h); else pos = axis_obj.position; endif diff --git a/scripts/plot/colorbar.m b/scripts/plot/colorbar.m --- a/scripts/plot/colorbar.m +++ b/scripts/plot/colorbar.m @@ -107,6 +107,7 @@ if (! deleting) obj = get (ax); + obj.__my_handle__ = ax; position = obj.position; clen = rows (get (get (ax, "parent"), "colormap")); cext = get (ax, "clim"); @@ -220,6 +221,7 @@ (isempty (gcbf()) || strcmp (get (gcbf(), "beingdeleted"),"off"))) loc = get (cax, "location"); obj = get (h); + obj.__my_handle__ = h; obj.position = orig_props.position; obj.outerposition = orig_props.outerposition; [pos, cpos, vertical, mirror] = ... diff --git a/scripts/plot/private/__actual_axis_position__.m b/scripts/plot/private/__actual_axis_position__.m --- a/scripts/plot/private/__actual_axis_position__.m +++ b/scripts/plot/private/__actual_axis_position__.m @@ -24,14 +24,18 @@ ## Author: Ben Abbott -function pos = __actual_axis_position__ (axis_obj) - if (ishandle (axis_obj)) - axis_obj = get (axis_obj); +function pos = __actual_axis_position__ (h) + + if (ishandle (h)) + axis_obj = get (h); + elseif (isstruct (h)) + axis_obj = h; + h = axis_obj.__my_handle__; endif ## When using {rltb}margin, Gnuplot does not handle the specified ## aspect ratio properly, so handle it here. - if (__calc_dimensions__ (axis_obj.parent) == 2 + if (__calc_dimensions__ (h) == 2 || all (mod (axis_obj.view, 90) == 0)) aspect_ratio_2d = axis_obj.plotboxaspectratio(1:2); else