Revision: 8380
          http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8380&view=rev
Author:   efiring
Date:     2010-06-04 22:06:07 +0000 (Fri, 04 Jun 2010)

Log Message:
-----------
[2901582] Don't fail if the previous LocationEvent was in a canvas that no 
longer exists.

Modified Paths:
--------------
    trunk/matplotlib/lib/matplotlib/backend_bases.py

Modified: trunk/matplotlib/lib/matplotlib/backend_bases.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/backend_bases.py    2010-06-04 20:57:33 UTC 
(rev 8379)
+++ trunk/matplotlib/lib/matplotlib/backend_bases.py    2010-06-04 22:06:07 UTC 
(rev 8380)
@@ -1069,12 +1069,13 @@
 
 class LocationEvent(Event):
     """
-    A event that has a screen location
+    An event that has a screen location
 
     The following additional attributes are defined and shown with
-    their default values
+    their default values.
 
-    In addition to the :class:`Event` attributes, the following event 
attributes are defined:
+    In addition to the :class:`Event` attributes, the following
+    event attributes are defined:
 
     *x*
         x position - pixels from left of canvas
@@ -1148,8 +1149,16 @@
             last = LocationEvent.lastevent
             if last.inaxes!=self.inaxes:
                 # process axes enter/leave events
-                if last.inaxes is not None:
-                    last.canvas.callbacks.process('axes_leave_event', last)
+                try:
+                    if last.inaxes is not None:
+                        last.canvas.callbacks.process('axes_leave_event', last)
+                except:
+                    pass
+                    # See ticket 2901582.
+                    # I think this is a valid exception to the rule
+                    # against catching all exceptions; if anything goes
+                    # wrong, we simply want to move on and process the
+                    # current event.
                 if self.inaxes is not None:
                     self.canvas.callbacks.process('axes_enter_event', self)
 
@@ -1158,12 +1167,12 @@
             if self.inaxes is not None:
                 self.canvas.callbacks.process('axes_enter_event', self)
 
-
         LocationEvent.lastevent = self
 
 
 
 
+
 class MouseEvent(LocationEvent):
     """
     A mouse event ('button_press_event', 'button_release_event', 
'scroll_event',


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

------------------------------------------------------------------------------
ThinkGeek and WIRED's GeekDad team up for the Ultimate 
GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the 
lucky parental unit.  See the prize list and enter to win: 
http://p.sf.net/sfu/thinkgeek-promo
_______________________________________________
Matplotlib-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-checkins

Reply via email to