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 ();
     }