Skip to content

Commit 1163b30

Browse files
authored
Merge pull request matplotlib#25155 from devRD/lasso_demo
Fix lasso unresponsive issue by adding a lock release event
2 parents 934951f + 433406e commit 1163b30

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

examples/event_handling/lasso_demo.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,10 @@ def __init__(self, ax, data):
5959

6060
ax.add_collection(self.collection)
6161

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)
6366

6467
def callback(self, verts):
6568
facecolors = self.collection.get_facecolors()
@@ -72,7 +75,6 @@ def callback(self, verts):
7275
facecolors[i] = Datum.colorout
7376

7477
self.canvas.draw_idle()
75-
self.canvas.widgetlock.release(self.lasso)
7678
del self.lasso
7779

7880
def on_press(self, event):
@@ -86,6 +88,10 @@ def on_press(self, event):
8688
# acquire a lock on the widget drawing
8789
self.canvas.widgetlock(self.lasso)
8890

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+
8995

9096
if __name__ == '__main__':
9197

0 commit comments

Comments
 (0)