diff --git a/doc/users/next_whats_new/2017-12-29-3dhome.rst b/doc/users/next_whats_new/2017-12-29-3dhome.rst new file mode 100644 index 000000000000..ae7b80a60978 --- /dev/null +++ b/doc/users/next_whats_new/2017-12-29-3dhome.rst @@ -0,0 +1,2 @@ +Home/Forward/Backward buttons now work with 3D axes +--------------------------------------------------- diff --git a/lib/mpl_toolkits/mplot3d/axes3d.py b/lib/mpl_toolkits/mplot3d/axes3d.py index 20a89215d58e..fe1ebc73cb85 100644 --- a/lib/mpl_toolkits/mplot3d/axes3d.py +++ b/lib/mpl_toolkits/mplot3d/axes3d.py @@ -1062,9 +1062,27 @@ def _button_press(self, event): if event.inaxes == self: self.button_pressed = event.button self.sx, self.sy = event.xdata, event.ydata + toolbar = getattr(self.figure.canvas, "toolbar") + if toolbar and toolbar._nav_stack() is None: + self.figure.canvas.toolbar.push_current() def _button_release(self, event): self.button_pressed = None + toolbar = getattr(self.figure.canvas, "toolbar") + if toolbar: + self.figure.canvas.toolbar.push_current() + + def _get_view(self): + # docstring inherited + return (self.get_xlim(), self.get_ylim(), self.get_zlim(), + self.elev, self.azim) + + def _set_view(self, view): + # docstring inherited + xlim, ylim, zlim, elev, azim = view + self.set(xlim=xlim, ylim=ylim, zlim=zlim) + self.elev = elev + self.azim = azim def format_zdata(self, z): """