@@ -1132,12 +1132,12 @@ def update_background(self, event):
11321132
11331133 def connect_default_events (self ):
11341134 """Connect the major canvas events to methods."""
1135- self .connect_event ('motion_notify_event' , self ._onmove )
1136- self .connect_event ('button_press_event' , self ._press )
1137- self .connect_event ('button_release_event' , self ._release )
1135+ self .connect_event ('motion_notify_event' , self .onmove )
1136+ self .connect_event ('button_press_event' , self .press )
1137+ self .connect_event ('button_release_event' , self .release )
11381138 self .connect_event ('draw_event' , self .update_background )
1139- self .connect_event ('key_press_event' , self ._on_key_press )
1140- self .connect_event ('scroll_event' , self ._on_scroll )
1139+ self .connect_event ('key_press_event' , self .on_key_press )
1140+ self .connect_event ('scroll_event' , self .on_scroll )
11411141
11421142 def ignore (self , event ):
11431143 """return *True* if *event* should be ignored"""
@@ -1198,64 +1198,36 @@ def update(self):
11981198 self .canvas .draw_idle ()
11991199 return False
12001200
1201- def _press (self , event ):
1202- """Button press event"""
1203- if not self .ignore (event ):
1204- self .eventpress = event
1205- self .press (event )
1206-
12071201 def press (self , event ):
12081202 """Button press handler"""
1209- pass
1210-
1211- def _release (self , event ):
1212- if not self .ignore (event ) and not self .eventpress is None :
1213- self .eventrelease = event
1214- self .release (event )
1215- self .eventpress = None
1216- self .eventrelease = None
1203+ if not self .ignore (event ):
1204+ self .eventpress = event
1205+ return True
1206+ return False
12171207
12181208 def release (self , event ):
12191209 """Button release event"""
1220- pass
1221-
1222- def _onmove ( self , event ):
1223- if not self . ignore ( event ) :
1224- self . onmove ( event )
1210+ if not self . ignore ( event ) and not self . eventpress is None :
1211+ self . eventrelease = event
1212+ return True
1213+ else :
1214+ return False
12251215
12261216 def onmove (self , event ):
1227- """Cursor motion event"""
1217+ """Cursor move event"""
12281218 pass
12291219
1230- def _on_scroll (self , event ):
1231- if not self .ignore (event ):
1232- self .on_scroll (event )
1233-
12341220 def on_scroll (self , event ):
12351221 """Mouse scroll event"""
12361222 pass
12371223
1238- def _on_key_press (self , event ):
1239- if not self .ignore (event ):
1240-
4B92
self .on_key_press (event )
1241-
12421224 def on_key_press (self , event ):
12431225 """Key press event"""
12441226 pass
12451227
1246- def set_active (self , active ):
1247- """
1248- Use this to activate / deactivate the Selector
1249- from your program with an boolean parameter *active*.
1250- """
1251- self .active = active
1252-
1253- def get_active (self ):
1254- """ Get status of active mode (boolean variable)"""
1255- return self .active
1256-
12571228 def set_visible (self , visible ):
12581229 """ Set the visibility of our artists """
1230+ self .visible = visible
12591231 for artist in self .artists :
12601232 artist .set_visible (visible )
12611233
@@ -1393,6 +1365,8 @@ def ignore(self, event):
13931365
13941366 def press (self , event ):
13951367 """on button press event"""
1368+ if not _SelectorWidget .press (self , event ):
1369+ return False
13961370 self .rect .set_visible (self .visible )
13971371 if self .span_stays :
13981372 self .stay_rect .set_visible (False )
@@ -1405,7 +1379,7 @@ def press(self, event):
14051379
14061380 def release (self , event ):
14071381 """on button release event"""
1408- if self .pressv is None :
1382+ if not _SelectorWidget . release ( self , event ) or self .pressv is None :
14091383 return
14101384 self .buttonDown = False
14111385
@@ -1467,6 +1441,7 @@ def onmove(self, event):
14671441 self .onmove_callback (vmin , vmax )
14681442
14691443 self .update ()
1444+ self .eventpress = None
14701445 return False
14711446
14721447
@@ -1591,12 +1566,17 @@ def __init__(self, ax, onselect, drawtype='box',
15911566
15921567 def press (self , event ):
15931568 """on button press event"""
1569+ if not _SelectorWidget .press (self , event ):
1570+ return True
15941571 # make the drawed box/line visible
15951572 self .to_draw .set_visible (self .visible )
15961573 return False
15971574
15981575 def release (self , event ):
15991576
C02E
"""on button release event"""
1577+ if not _SelectorWidget .release (self , event ):
1578+ return True
1579+
16001580 # make the box/line invisible again
16011581 self .to_draw .set_visible (False )
16021582 self .canvas .draw ()
@@ -1630,6 +1610,7 @@ def release(self, event):
16301610
16311611 self .onselect (self .eventpress , self .eventrelease )
16321612 # call desired function
1613+ self .eventpress = None
16331614 return False
16341615
16351616 def onmove (self , event ):
@@ -1720,13 +1701,17 @@ def onpress(self, event):
17201701 self .press (event )
17211702
17221703 def press (self , event ):
1704+ if not _SelectorWidget .press (self , event ):
1705+ return
17231706 self .verts = [(event .xdata , event .ydata )]
17241707 self .line .set_visible (True )
17251708
17261709 def onrelease (self , event ):
17271710 self .release (event )
17281711
17291712 def release (self , event ):
1713+ if not _SelectorWidget .release (self , event ):
1714+ return
17301715 if self .verts is not None :
17311716 self .verts .append ((event .xdata , event .ydata ))
17321717 self .onselect (self .verts )
@@ -1735,7 +1720,7 @@ def release(self, event):
17351720 self .verts = None
17361721
17371722 def onmove (self , event ):
1738- if self .verts is None :
1723+ if self .ignore ( event ) or self . verts is None :
17391724 return
17401725 self .verts .append ((event .xdata , event .ydata ))
17411726
0 commit comments