@@ -59,7 +59,10 @@ def __init__(self, ax, data):
59
59
60
60
ax .add_collection (self .collection )
61
61
62
- self .cid = self .canvas .mpl_connect ('button_press_event' , self .on_press )
62
+ self .cid_press = self .canvas .mpl_connect ('button_press_event' ,
63
+ self .on_press )
64
+ self .cid_release = self .canvas .mpl_connect ('button_release_event' ,
65
+ self .on_release )
63
66
64
67
def callback (self , verts ):
65
68
facecolors = self .collection .get_facecolors ()
@@ -72,7 +75,6 @@ def callback(self, verts):
72
75
facecolors [i ] = Datum .colorout
73
76
74
77
self .canvas .draw_idle ()
75
- self .canvas .widgetlock .release (self .lasso )
76
78
del self .lasso
77
79
78
80
def on_press (self , event ):
@@ -86,6 +88,10 @@ def on_press(self, event):
86
88
# acquire a lock on the widget drawing
87
89
self .canvas .widgetlock (self .lasso )
88
90
91
+ def on_release (self , event ):
92
+ if hasattr (self , 'lasso' ) and self .canvas .widgetlock .isowner (self .lasso ):
93
+ self .canvas .widgetlock .release (self .lasso )
94
+
89
95
90
96
if __name__ == '__main__' :
91
97
0 commit comments