Skip to content

Commit 8355ee7

Browse files
committed
Axes can't set navigate_mode.
Axes.set_navigate_mode is explicitly documented as private, and one should just defer to the associated toolbar in any case, which is actually handling the relevant event callbacks (calling only set_navigate_mode had no practical effect).
1 parent bff64cc commit 8355ee7

File tree

4 files changed

+11
-15
lines changed

4 files changed

+11
-15
lines changed
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
``Axes.set_navigate_mode`` is deprecated
2+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3+
... with no replacement.

lib/matplotlib/axes/_base.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -724,7 +724,6 @@ def __init__(self, fig,
724724
self.fmt_ydata = None
725725

726726
self.set_navigate(True)
727-
self.set_navigate_mode(None)
728727

729728
if xscale:
730729
self.set_xscale(xscale)
@@ -4177,17 +4176,22 @@ def get_navigate_mode(self):
41774176
"""
41784177
Get the navigation toolbar button status: 'PAN', 'ZOOM', or None.
41794178
"""
4180-
return self._navigate_mode
4179+
toolbar = self.figure.canvas.toolbar
4180+
if toolbar:
4181+
return None if toolbar.mode.name == "NONE" else toolbar.mode.name
4182+
manager = self.figure.canvas.manager
4183+
if manager and manager.toolmanager:
4184+
mode = manager.toolmanager.active_toggle.get("default")
4185+
return None if mode is None else mode.upper()
41814186

4187+
@_api.deprecated("3.11")
41824188
def set_navigate_mode(self, b):
41834189
"""
41844190
Set the navigation toolbar button status.
41854191
41864192
.. warning::
41874193
This is not a user-API function.
4188-
41894194
"""
4190-
self._navigate_mode = b
41914195

41924196
def _get_view(self):
41934197
"""

lib/matplotlib/backend_bases.py

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2763,10 +2763,6 @@ class _Mode(str, Enum):
27632763
def __str__(self):
27642764
return self.value
27652765

2766-
@property
2767-
def _navigate_mode(self):
2768-
return self.name if self is not _Mode.NONE else None
2769-
27702766

27712767
class NavigationToolbar2:
27722768
"""
@@ -3037,8 +3033,6 @@ def pan(self, *args):
30373033
else:
30383034
self.mode = _Mode.PAN
30393035
self.canvas.widgetlock(self)
3040-
for a in self.canvas.figure.get_axes():
3041-
a.set_navigate_mode(self.mode._navigate_mode)
30423036

30433037
_PanInfo = namedtuple("_PanInfo", "button axes cid")
30443038

@@ -3099,8 +3093,6 @@ def zoom(self, *args):
30993093
else:
31003094
self.mode = _Mode.ZOOM
31013095
self.canvas.widgetlock(self)
3102-
for a in self.canvas.figure.get_axes():
3103-
a.set_navigate_mode(self.mode._navigate_mode)
31043096

31053097
_ZoomInfo = namedtuple("_ZoomInfo", "button start_xy axes cid cbar")
31063098

lib/matplotlib/backend_tools.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -668,9 +668,6 @@ def disable(self, event=None):
668668
def trigger(self, sender, event, data=None):
669669
self.toolmanager.get_tool(_views_positions).add_figure(self.figure)
670670
super().trigger(sender, event, data)
671-
new_navigate_mode = self.name.upper() if self.toggled else None
672-
for ax in self.figure.axes:
673-
ax.set_navigate_mode(new_navigate_mode)
674671

675672
def scroll_zoom(self, event):
676673
# https://gist.github.com/tacaswell/3144287

0 commit comments

Comments
 (0)