Skip to content

Commit c084c96

Browse files
authored
Merge pull request matplotlib#25293 from meeseeksmachine/auto-backport-of-pr-25155-on-v3.7.x
Backport PR matplotlib#25155 on branch v3.7.x (Fix lasso unresponsive issue by adding a lock release event)
2 parents da8e765 + 9788c07 commit c084c96

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
@@ -57,7 +57,10 @@ def __init__(self, ax, data):
5757

5858
ax.add_collection(self.collection)
5959

60-
self.cid = self.canvas.mpl_connect('button_press_event', self.on_press)
60+
self.cid_press = self.canvas.mpl_connect('button_press_event',
61+
self.on_press)
62+
self.cid_release = self.canvas.mpl_connect('button_release_event',
63+
self.on_release)
6164

6265
def callback(self, verts):
6366
facecolors = self.collection.get_facecolors()
@@ -70,7 +73,6 @@ def callback(self, verts):
7073
facecolors[i] = Datum.colorout
7174

7275
self.canvas.draw_idle()
73-
self.canvas.widgetlock.release(self.lasso)
7476
del self.lasso
7577

7678
def on_press(self, event):
@@ -84,6 +86,10 @@ def on_press(self, event):
8486
# acquire a lock on the widget drawing
8587
self.canvas.widgetlock(self.lasso)
8688

89+
def on_release(self, event):
90+
if hasattr(self, 'lasso') and self.canvas.widgetlock.isowner(self.lasso):
91+
self.canvas.widgetlock.release(self.lasso)
92+
8793

8894
if __name__ == '__main__':
8995

0 commit comments

Comments
 (0)