@@ -1132,12 +1132,12 @@ def update_background(self, event):
1132
1132
1133
1133
def connect_default_events (self ):
1134
1134
"""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 )
1138
1138
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 )
1141
1141
1142
1142
def ignore (self , event ):
1143
1143
"""return *True* if *event* should be ignored"""
@@ -1198,64 +1198,36 @@ def update(self):
1198
1198
self .canvas .draw_idle ()
1199
1199
return False
1200
1200
1201
- def _press (self , event ):
1202
- """Button press event"""
1203
- if not self .ignore (event ):
1204
- self .eventpress = event
1205
- self .press (event )
1206
-
1207
1201
def press (self , event ):
1208
1202
"""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
1217
1207
1218
1208
def release (self , event ):
1219
1209
"""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
1225
1215
1226
1216
def onmove (self , event ):
1227
- """Cursor motion event"""
1217
+ """Cursor move event"""
1228
1218
pass
1229
1219
1230
- def _on_scroll (self , event ):
1231
- if not self .ignore (event ):
1232
- self .on_scroll (event )
1233
-
1234
1220
def on_scroll (self , event ):
1235
1221
"""Mouse scroll event"""
1236
1222
pass
1237
1223
1238
- def _on_key_press (self , event ):
1239
- if not self .ignore (event ):
1240
- self .on_key_press (event )
1241
-
1242
1224
def on_key_press (self , event ):
1243
1225
"""Key press event"""
1244
1226
pass
1245
1227
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
-
1257
1228
def set_visible (self , visible ):
1258
1229
""" Set the visibility of our artists """
1230
+ self .visible = visible
1259
1231
for artist in self .artists :
1260
1232
artist .set_visible (visible )
1261
1233
@@ -1393,6 +1365,8 @@ def ignore(self, event):
1393
1365
1394
1366
def press (self , event ):
1395
1367
"""on button press event"""
1368
+ if not _SelectorWidget .press (self , event ):
1369
+ return False
1396
1370
self .rect .set_visible (self .visible )
1397
1371
if self .span_stays :
1398
1372
self .stay_rect .set_visible (False )
@@ -1405,7 +1379,7 @@ def press(self, event):
1405
1379
1406
1380
def release (self , event ):
1407
1381
"""on button release event"""
1408
- if self .pressv is None :
1382
+ if not _SelectorWidget . release ( self , event ) or self .pressv is None :
1409
1383
return
1410
1384
self .buttonDown = False
1411
1385
@@ -1467,6 +1441,7 @@ def onmove(self, event):
1467
1441
self .onmove_callback (vmin , vmax )
1468
1442
1469
1443
self .update ()
1444
+ self .eventpress = None
1470
1445
return False
1471
1446
1472
1447
@@ -1591,12 +1566,17 @@ def __init__(self, ax, onselect, drawtype='box',
1591
1566
1592
1567
def press (self , event ):
1593
1568
"""on button press event"""
1569
+ if not _SelectorWidget .press (self , event ):
1570
+ return True
1594
1571
# make the drawed box/line visible
1595
1572
self .to_draw .set_visible (self .visible )
1596
1573
return False
1597
1574
1598
1575
def release (self , event ):
1599
1576
"""on button release event"""
1577
+ if not _SelectorWidget .release (self , event ):
1578
+ return True
1579
+
1600
1580
# make the box/line invisible again
1601
1581
self .to_draw .set_visible (False )
1602
1582
self .canvas .draw ()
@@ -1630,6 +1610,7 @@ def release(self, event):
1630
1610
1631
1611
self .onselect (self .eventpress , self .eventrelease )
1632
1612
# call desired function
1613
+ self .eventpress = None
1633
1614
return False
1634
1615
1635
1616
def onmove (self , event ):
@@ -1720,13 +1701,17 @@ def onpress(self, event):
1720
1701
self .press (event )
1721
1702
1722
1703
def press (self , event ):
1704
+ if not _SelectorWidget .press (self , event ):
1705
+ return
1723
1706
self .verts = [(event .xdata , event .ydata )]
1724
1707
self .line .set_visible (True )
1725
1708
1726
1709
def onrelease (self , event ):
1727
1710
self .release (event )
1728
1711
1729
1712
def release (self , event ):
1713
+ if not _SelectorWidget .release (self , event ):
1714
+ return
1730
1715
if self .verts is not None :
1731
1716
self .verts .append ((event .xdata , event .ydata ))
1732
1717
self .onselect (self .verts )
@@ -1735,7 +1720,7 @@ def release(self, event):
1735
1720
self .verts = None
1736
1721
1737
1722
def onmove (self , event ):
1738
- if self .verts is None :
1723
+ if self .ignore ( event ) or self . verts is None :
1739
1724
return
1740
1725
self .verts .append ((event .xdata , event .ydata ))
1741
1726
0 commit comments