Skip to content

Commit 45d1c34

Browse files
author
Thomas Hisch
committed
Add a quit_all key to the default keymap
1 parent 980620e commit 45d1c34

File tree

4 files changed

+19
-2
lines changed

4 files changed

+19
-2
lines changed

doc/users/navigation_toolbar.rst

+2-1
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,8 @@ Zoom-to-rect **o**
9494
Save **ctrl** + **s**
9595
Toggle fullscreen **ctrl** + **f**
9696
Close plot **ctrl** + **w**
97-
Constrain pan/zoom to x axis hold **x** when panning/zooming with mouse
97+
Close all plots **shift** + **w**
98+
Constrain pan/zoom to x axis hold **x** when panning/zooming with mouse
9899
Constrain pan/zoom to y axis hold **y** when panning/zooming with mouse
99100
Preserve aspect ratio hold **CONTROL** when panning/zooming with mouse
100101
Toggle grid **g** when mouse is over an axes

lib/matplotlib/backend_bases.py

+4
Original file line numberDiff line numberDiff line change
@@ -2484,6 +2484,7 @@ def key_press_handler(event, canvas, toolbar=None):
24842484
zoom_keys = rcParams['keymap.zoom']
24852485
save_keys = rcParams['keymap.save']
24862486
quit_keys = rcParams['keymap.quit']
2487+
quit_all_keys = rcParams['keymap.quit_all']
24872488
grid_keys = rcParams['keymap.grid']
24882489
toggle_yscale_keys = rcParams['keymap.yscale']
24892490
toggle_xscale_keys = rcParams['keymap.xscale']
@@ -2500,6 +2501,9 @@ def key_press_handler(event, canvas, toolbar=None):
25002501
if event.key in quit_keys:
25012502
Gcf.destroy_fig(canvas.figure)
25022503

2504+
if event.key in quit_all_keys:
2505+
Gcf.destroy_all()
2506+
25032507
if toolbar is not None:
25042508
# home or reset mnemonic (default key 'h', 'home' and 'r')
25052509
if event.key in home_keys:

lib/matplotlib/backend_tools.py

+11
Original file line numberDiff line numberDiff line change
@@ -325,6 +325,16 @@ def trigger(self, sender, event, data=None):
325325
Gcf.destroy_fig(self.figure)
326326

327327

328+
class ToolQuitAll(ToolBase):
329+
"""Tool to call the figure manager destroy method"""
330+
331+
description = 'Quit all figures'
332+
default_keymap = rcParams['keymap.quit_all']
333+
334+
def trigger(self, sender, event, data=None):
335+
Gcf.destroy_all()
336+
337+
328338
class ToolEnableAllNavigation(ToolBase):
329339
"""Tool to enable all axes for toolmanager interaction"""
330340

@@ -858,6 +868,7 @@ def _mouse_move(self, event):
858868
'grid': ToolGrid,
859869
'fullscreen': ToolFullScreen,
860870
'quit': ToolQuit,
871+
'quit_all': ToolQuitAll,
861872
'allnav': ToolEnableAllNavigation,
862873
'nav': ToolEnableNavigation,
863874
'xscale': ToolXScale,

lib/matplotlib/rcsetup.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -1142,7 +1142,8 @@ def validate_cycler(s):
11421142
'keymap.pan': [['p'], validate_stringlist],
11431143
'keymap.zoom': [['o'], validate_stringlist],
11441144
'keymap.save': [['s', 'ctrl+s'], validate_stringlist],
1145-
'keymap.quit': [['ctrl+w', 'cmd+w'], validate_stringlist],
1145+
'keymap.quit': [['ctrl+w', 'cmd+w', 'q'], validate_stringlist],
1146+
'keymap.quit_all': [['W', 'cmd+W', 'Q'], validate_stringlist],
11461147
'keymap.grid': [['g'], validate_stringlist],
11471148
'keymap.yscale': [['l'], validate_stringlist],
11481149
'keymap.xscale': [['k', 'L'], validate_stringlist],

0 commit comments

Comments
 (0)