Skip to content

Commit ce29648

Browse files
authored
Merge pull request matplotlib#18532 from anntzer/udif
Consistent behavior of draw_if_interactive across interactive backends.
2 parents 39125d6 + 9f8e36a commit ce29648

File tree

9 files changed

+9
-36
lines changed

9 files changed

+9
-36
lines changed
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
Consistent behavior of ``draw_if_interactive()`` across backends
2+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3+
`.pyplot.draw_if_interactive` no longer shows the window (if it was previously
4+
unshown) on the tk and nbagg backends, consistently with all other backends.

lib/matplotlib/backend_bases.py

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3510,12 +3510,9 @@ class _Backend:
35103510
# For interactive backends, the `FigureManager` class must be overridden.
35113511
FigureManager = FigureManagerBase
35123512

3513-
# The following methods must be left as None for non-interactive backends.
3514-
# For interactive backends, `trigger_manager_draw` should be a function
3515-
# taking a manager as argument and triggering a canvas draw, and `mainloop`
3516-
# should be a function taking no argument and starting the backend main
3517-
# loop.
3518-
trigger_manager_draw = None
3513+
# For interactive backends, `mainloop` should be a function taking no
3514+
# argument and starting the backend main loop. It should be left as None
3515+
# for non-interactive backends.
35193516
mainloop = None
35203517

35213518
# The following methods will be automatically defined and exported, but
@@ -3539,10 +3536,10 @@ def new_figure_manager_given_figure(cls, num, figure):
35393536

35403537
@classmethod
35413538
def draw_if_interactive(cls):
3542-
if cls.trigger_manager_draw is not None and is_interactive():
3539+
if cls.mainloop is not None and is_interactive():
35433540
manager = Gcf.get_active()
35443541
if manager:
3545-
cls.trigger_manager_draw(manager)
3542+
manager.canvas.draw_idle()
35463543

35473544
@classmethod
35483545
def show(cls, *, block=None):

lib/matplotlib/backends/_backend_tk.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -883,10 +883,6 @@ def new_figure_manager_given_figure(cls, num, figure):
883883
canvas.draw_idle()
884884
return manager
885885

886-
@staticmethod
887-
def trigger_manager_draw(manager):
888-
manager.show()
889-
890886
@staticmethod
891887
def mainloop():
892888
managers = Gcf.get_all_fig_managers()

lib/matplotlib/backends/backend_gtk3.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -832,10 +832,6 @@ class _BackendGTK3(_Backend):
832832
FigureCanvas = FigureCanvasGTK3
833833
FigureManager = FigureManagerGTK3
834834

835-
@staticmethod
836-
def trigger_manager_draw(manager):
837-
manager.canvas.draw_idle()
838-
839835
@staticmethod
840836
def mainloop():
841837
if Gtk.main_level() == 0:

lib/matplotlib/backends/backend_macosx.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -158,10 +158,6 @@ class _BackendMac(_Backend):
158158
FigureCanvas = FigureCanvasMac
159159
FigureManager = FigureManagerMac
160160

161-
@staticmethod
162-
def trigger_manager_draw(manager):
163-
manager.canvas.draw_idle()
164-
165161
@staticmethod
166162
def mainloop():
167163
_macosx.show()

lib/matplotlib/backends/backend_nbagg.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -242,10 +242,6 @@ def destroy(event):
242242
cid = canvas.mpl_connect('close_event', destroy)
243243
return manager
244244

245-
@staticmethod
246-
def trigger_manager_draw(manager):
247-
manager.show()
248-
249245
@staticmethod
250246
def show(block=None):
251247
## TODO: something to do when keyword block==False ?

lib/matplotlib/backends/backend_qt5.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1019,10 +1019,6 @@ class _BackendQT5(_Backend):
10191019
FigureCanvas = FigureCanvasQT
10201020
FigureManager = FigureManagerQT
10211021

1022-
@staticmethod
1023-
def trigger_manager_draw(manager):
1024-
manager.canvas.draw_idle()
1025-
10261022
@staticmethod
10271023
def mainloop():
10281024
old_signal = signal.getsignal(signal.SIGINT)

lib/matplotlib/backends/backend_webagg.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -306,10 +306,6 @@ class _BackendWebAgg(_Backend):
306306
FigureCanvas = FigureCanvasWebAgg
307307
FigureManager = core.FigureManagerWebAgg
308308

309-
@staticmethod
310-
def trigger_manager_draw(manager):
311-
manager.canvas.draw_idle()
312-
313309
@staticmethod
314310
def show():
315311
WebAggApplication.initialize()

lib/matplotlib/backends/backend_wx.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1479,10 +1479,6 @@ class _BackendWx(_Backend):
14791479
FigureManager = FigureManagerWx
14801480
_frame_class = FigureFrameWx
14811481

1482-
@staticmethod
1483-
def trigger_manager_draw(manager):
1484-
manager.canvas.draw_idle()
1485-
14861482
@classmethod
14871483
def new_figure_manager(cls, num, *args, **kwargs):
14881484
# Create a wx.App instance if it has not been created so far.

0 commit comments

Comments
 (0)