diff --git a/lib/matplotlib/backend_bases.py b/lib/matplotlib/backend_bases.py index 7f2ab50a56b2..caffc3ea647b 100644 --- a/lib/matplotlib/backend_bases.py +++ b/lib/matplotlib/backend_bases.py @@ -2485,19 +2485,23 @@ def key_press_handler(event, canvas=None, toolbar=None): toggle_xscale_keys = rcParams['keymap.xscale'] all_keys = dict.__getitem__(rcParams, 'keymap.all_axes') - # toggle fullscreen mode ('f', 'ctrl + f') - if event.key in fullscreen_keys: - try: - canvas.manager.full_screen_toggle() - except AttributeError: - pass + manager = canvas.manager - # quit the figure (default key 'ctrl+w') - if event.key in quit_keys: - Gcf.destroy_fig(canvas.figure) + # quit all figures (no default) if event.key in quit_all_keys: Gcf.destroy_all() + if manager is not None: + # toggle fullscreen mode ('f', 'ctrl + f') + if event.key in fullscreen_keys: + canvas.manager.full_screen_toggle() + # quit the figure (default key 'ctrl+w') + if event.key in quit_keys: + if Gcf.get_fig_manager(canvas.manager.num): + Gcf.destroy_fig(canvas.figure) + else: + manager.destroy() + if toolbar is not None: # home or reset mnemonic (default key 'h', 'home' and 'r') if event.key in home_keys: @@ -3545,15 +3549,16 @@ def draw_if_interactive(cls): cls.trigger_manager_draw(manager) @classmethod - def show(cls, *, block=None): + def show(cls, figures=None, *, block=None): """ - Show all figures. + Show the *figures*, defaulting to all pyplot-managed figures. `show` blocks by calling `mainloop` if *block* is ``True``, or if it is ``None`` and we are neither in IPython's ``%pylab`` mode, nor in `interactive` mode. """ - managers = Gcf.get_all_fig_managers() + managers = ([figure.canvas.manager for figure in figures] + if figures is not None else Gcf.get_all_fig_managers()) if not managers: return for manager in managers:
Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.
Alternative Proxies: