From dd03d4a67e1c14e89e60f26d4ba690ad0d7fd309 Mon Sep 17 00:00:00 2001 From: devRD Date: Sun, 5 Feb 2023 11:19:09 +0530 Subject: [PATCH 1/3] Add release event for lasso_demo --- examples/event_handling/lasso_demo.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/examples/event_handling/lasso_demo.py b/examples/event_handling/lasso_demo.py index cb9412079330..9557dfafbef4 100644 --- a/examples/event_handling/lasso_demo.py +++ b/examples/event_handling/lasso_demo.py @@ -57,7 +57,10 @@ def __init__(self, ax, data): ax.add_collection(self.collection) - self.cid = self.canvas.mpl_connect('button_press_event', self.on_press) + self.cid_press = self.canvas.mpl_connect('button_press_event', + self.on_press) + self.cid_release = self.canvas.mpl_connect('button_release_event', + self.on_release) def callback(self, verts): facecolors = self.collection.get_facecolors() @@ -70,7 +73,6 @@ def callback(self, verts): facecolors[i] = Datum.colorout self.canvas.draw_idle() - self.canvas.widgetlock.release(self.lasso) del self.lasso def on_press(self, event): @@ -84,6 +86,11 @@ def on_press(self, event): # acquire a lock on the widget drawing self.canvas.widgetlock(self.lasso) + def on_release(self, event): + if self.canvas.widgetlock.locked(): + self.canvas.widgetlock.release(self.lasso) + return + if __name__ == '__main__': From 418c9e7037896bea4a4db5cce656f2933014f0e0 Mon Sep 17 00:00:00 2001 From: Ratnabali Dutta Date: Thu, 16 Feb 2023 11:16:55 +0530 Subject: [PATCH 2/3] Check lock owner before lock_release Co-authored-by: Ian Hunt-Isaak --- examples/event_handling/lasso_demo.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/examples/event_handling/lasso_demo.py b/examples/event_handling/lasso_demo.py index 9557dfafbef4..454d1f988054 100644 --- a/examples/event_handling/lasso_demo.py +++ b/examples/event_handling/lasso_demo.py @@ -87,9 +87,8 @@ def on_press(self, event): self.canvas.widgetlock(self.lasso) def on_release(self, event): - if self.canvas.widgetlock.locked(): + if self.canvas.widgetlock.isowner(self.lasso): self.canvas.widgetlock.release(self.lasso) - return if __name__ == '__main__': From 433406e6a8a6a76d82eee83a05a02bd5b10060c3 Mon Sep 17 00:00:00 2001 From: Ratnabali Dutta Date: Wed, 22 Feb 2023 11:37:24 +0530 Subject: [PATCH 3/3] Check attribute error for lasso Co-authored-by: Elliott Sales de Andrade --- examples/event_handling/lasso_demo.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/event_handling/lasso_demo.py b/examples/event_handling/lasso_demo.py index 454d1f988054..174c05a22cc6 100644 --- a/examples/event_handling/lasso_demo.py +++ b/examples/event_handling/lasso_demo.py @@ -87,7 +87,7 @@ def on_press(self, event): self.canvas.widgetlock(self.lasso) def on_release(self, event): - if self.canvas.widgetlock.isowner(self.lasso): + if hasattr(self, 'lasso') and self.canvas.widgetlock.isowner(self.lasso): self.canvas.widgetlock.release(self.lasso)