Revision: 7141
          http://matplotlib.svn.sourceforge.net/matplotlib/?rev=7141&view=rev
Author:   jdh2358
Date:     2009-05-25 17:39:45 +0000 (Mon, 25 May 2009)

Log Message:
-----------
only forward pick events to children with the same axes instance as the pick 
event inaxes method

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

Modified: trunk/matplotlib/lib/matplotlib/artist.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/artist.py   2009-05-25 17:38:09 UTC (rev 
7140)
+++ trunk/matplotlib/lib/matplotlib/artist.py   2009-05-25 17:39:45 UTC (rev 
7141)
@@ -24,13 +24,13 @@
 
 
 
-def allow_rasterization(draw):    
+def allow_rasterization(draw):
     """
     Decorator for Artist.draw method. Provides routines
     that run before and after the draw call. The before and after functions
     are useful for changing artist-dependant renderer attributes or making
     other setup function calls, such as starting and flushing a mixed-mode
-    renderer. 
+    renderer.
     """
     def before(artist, renderer):
         if artist.get_rasterized():
@@ -42,7 +42,7 @@
 
     # the axes class has a second argument inframe for its draw method.
     def draw_wrapper(artist, renderer, *kl):
-        before(artist, renderer)    
+        before(artist, renderer)
         draw(artist, renderer, *kl)
         after(artist, renderer)
 
@@ -52,8 +52,8 @@
     draw_wrapper.__doc__  = draw.__doc__
     draw_wrapper._supports_rasterization = True
     return draw_wrapper
-    
 
+
 class Artist(object):
     """
     Abstract base class for someone who renders into a
@@ -308,7 +308,10 @@
 
         # Pick children
         for a in self.get_children():
-            a.pick(mouseevent)
+            # make sure the event happened in the same axes
+            ax = getattr(a, 'axes', None)
+            if mouseevent.inaxes==ax:
+                a.pick(mouseevent)
 
     def set_picker(self, picker):
         """
@@ -543,16 +546,16 @@
         else:
             gc.set_clip_rectangle(None)
             gc.set_clip_path(None)
-        
+
     def get_rasterized(self):
         return self._rasterized
-        
+
     def set_rasterized(self, rasterized):
         """
         Force rasterized (bitmap) drawing in vector backend output.
-        
+
         Defaults to None, which implies the backend's default behavior
-        
+
         ACCEPTS: [True | False | None]
         """
         if rasterized and not hasattr(self.draw, "_supports_rasterization"):


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

------------------------------------------------------------------------------
Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT
is a gathering of tech-side developers & brand creativity professionals. Meet
the minds behind Google Creative Lab, Visual Complexity, Processing, & 
iPhoneDevCamp asthey present alongside digital heavyweights like Barbarian
Group, R/GA, & Big Spaceship. http://www.creativitycat.com 
_______________________________________________
Matplotlib-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-checkins

Reply via email to