diff --git a/examples/event_handling/lasso_demo.py b/examples/event_handling/lasso_demo.py index cb9412079330..174c05a22cc6 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,10 @@ def on_press(self, event): # acquire a lock on the widget drawing self.canvas.widgetlock(self.lasso) + def on_release(self, event): + if hasattr(self, 'lasso') and self.canvas.widgetlock.isowner(self.lasso): + self.canvas.widgetlock.release(self.lasso) + if __name__ == '__main__':