|
From: <ef...@us...> - 2010-06-08 21:57:22
|
Revision: 8397
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8397&view=rev
Author: efiring
Date: 2010-06-08 21:57:14 +0000 (Tue, 08 Jun 2010)
Log Message:
-----------
backend_wx: modernize show; multiple calls to show work now
Modified Paths:
--------------
trunk/matplotlib/lib/matplotlib/backends/backend_wx.py
Modified: trunk/matplotlib/lib/matplotlib/backends/backend_wx.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/backends/backend_wx.py 2010-06-07 23:39:24 UTC (rev 8396)
+++ trunk/matplotlib/lib/matplotlib/backends/backend_wx.py 2010-06-08 21:57:14 UTC (rev 8397)
@@ -1423,32 +1423,22 @@
def show():
"""
- Current implementation assumes that matplotlib is executed in a PyCrust
- shell. It appears to be possible to execute wxPython applications from
- within a PyCrust without having to ensure that wxPython has been created
- in a secondary thread (e.g. SciPy gui_thread).
-
- Unfortunately, gui_thread seems to introduce a number of further
- dependencies on SciPy modules, which I do not wish to introduce
- into the backend at this point. If there is a need I will look
- into this in a later release.
+ Show all the figures and enter the wx main loop.
+ This should be the last line of your script.
"""
DEBUG_MSG("show()", 3, None)
for figwin in Gcf.get_all_fig_managers():
figwin.frame.Show()
- if show._needmain and not matplotlib.is_interactive():
- # start the wxPython gui event if there is not already one running
+ needmain = not wx.App.IsMainLoopRunning()
+ if needmain and len(Gcf.get_all_fig_managers())>0:
wxapp = wx.GetApp()
if wxapp is not None:
- # wxPython 2.4 has no wx.App.IsMainLoopRunning() method
- imlr = getattr(wxapp, 'IsMainLoopRunning', lambda: False)
- if not imlr():
- wxapp.MainLoop()
- show._needmain = False
-show._needmain = True
+ wxapp.MainLoop()
+ # start the wxPython gui event if there is not already one running
+
def new_figure_manager(num, *args, **kwargs):
"""
Create a new figure manager instance
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|