Mercurial > octave
changeset 24191:fdd67d871a72
Keep manually set tick labels (bug #52284).
* graphics.in.h (update_box, update_yaxislocation, update_xaxislocation): Only
calculate ticklabels if mode is "auto".
author | Markus Mützel <markus.muetzel@gmx.de> |
---|---|
date | Wed, 01 Nov 2017 18:21:21 +0100 |
parents | 90fe16a3a5a1 |
children | d5c38fdf77f9 |
files | libinterp/corefcn/graphics.in.h |
diffstat | 1 files changed, 42 insertions(+), 36 deletions(-) [+] |
line wrap: on
line diff
--- a/libinterp/corefcn/graphics.in.h Tue Oct 31 13:28:43 2017 -0400 +++ b/libinterp/corefcn/graphics.in.h Wed Nov 01 18:21:21 2017 +0100 @@ -3808,18 +3808,20 @@ void update_layer (void) { update_axes_layout (); } void update_box (void) { - calc_ticklabels (xtick, xticklabel, xscale.is ("log"), - xaxislocation_is ("origin"), - yscale.is ("log") ? 2 : - (yaxislocation_is ("origin") ? 0 : - (yaxislocation_is ("left") ? -1 : 1)), - xlim); - calc_ticklabels (ytick, yticklabel, yscale.is ("log"), - yaxislocation_is ("origin"), - xscale.is ("log") ? 2 : - (xaxislocation_is ("origin") ? 0 : - (xaxislocation_is ("bottom") ? -1 : 1)), - ylim); + if (xticklabelmode.is ("auto")) + calc_ticklabels (xtick, xticklabel, xscale.is ("log"), + xaxislocation_is ("origin"), + yscale.is ("log") ? 2 : + (yaxislocation_is ("origin") ? 0 : + (yaxislocation_is ("left") ? -1 : 1)), + xlim); + if (yticklabelmode.is ("auto")) + calc_ticklabels (ytick, yticklabel, yscale.is ("log"), + yaxislocation_is ("origin"), + xscale.is ("log") ? 2 : + (xaxislocation_is ("origin") ? 0 : + (xaxislocation_is ("bottom") ? -1 : 1)), + ylim); } void update_yaxislocation (void) { @@ -3830,18 +3832,20 @@ "set to 'origin' instead."); sync_positions (); update_axes_layout (); - calc_ticklabels (xtick, xticklabel, xscale.is ("log"), - xaxislocation_is ("origin"), - yscale.is ("log") ? 2 : - (yaxislocation_is ("origin") ? 0 : - (yaxislocation_is ("left") ? -1 : 1)), - xlim); - calc_ticklabels (ytick, yticklabel, yscale.is ("log"), - yaxislocation_is ("origin"), - xscale.is ("log") ? 2 : - (xaxislocation_is ("origin") ? 0 : - (xaxislocation_is ("bottom") ? -1 : 1)), - ylim); + if (xticklabelmode.is ("auto")) + calc_ticklabels (xtick, xticklabel, xscale.is ("log"), + xaxislocation_is ("origin"), + yscale.is ("log") ? 2 : + (yaxislocation_is ("origin") ? 0 : + (yaxislocation_is ("left") ? -1 : 1)), + xlim); + if (yticklabelmode.is ("auto")) + calc_ticklabels (ytick, yticklabel, yscale.is ("log"), + yaxislocation_is ("origin"), + xscale.is ("log") ? 2 : + (xaxislocation_is ("origin") ? 0 : + (xaxislocation_is ("bottom") ? -1 : 1)), + ylim); update_ylabel_position (); } void update_xaxislocation (void) @@ -3853,18 +3857,20 @@ "set to 'origin' instead."); sync_positions (); update_axes_layout (); - calc_ticklabels (xtick, xticklabel, xscale.is ("log"), - xaxislocation_is ("origin"), - yscale.is ("log") ? 2 : - (yaxislocation_is ("origin") ? 0 : - (yaxislocation_is ("left") ? -1 : 1)), - xlim); - calc_ticklabels (ytick, yticklabel, yscale.is ("log"), - yaxislocation_is ("origin"), - xscale.is ("log") ? 2 : - (xaxislocation_is ("origin") ? 0 : - (xaxislocation_is ("bottom") ? -1 : 1)), - ylim); + if (xticklabelmode.is ("auto")) + calc_ticklabels (xtick, xticklabel, xscale.is ("log"), + xaxislocation_is ("origin"), + yscale.is ("log") ? 2 : + (yaxislocation_is ("origin") ? 0 : + (yaxislocation_is ("left") ? -1 : 1)), + xlim); + if (yticklabelmode.is ("auto")) + calc_ticklabels (ytick, yticklabel, yscale.is ("log"), + yaxislocation_is ("origin"), + xscale.is ("log") ? 2 : + (xaxislocation_is ("origin") ? 0 : + (xaxislocation_is ("bottom") ? -1 : 1)), + ylim); update_xlabel_position (); }