From cb41142c3720fb55b6e5ed8e56240146977b073d Mon Sep 17 00:00:00 2001 From: fukatani Date: Fri, 20 Jan 2017 23:55:11 +0900 Subject: [PATCH] Fix DraggableBase Not to move unselected object --- lib/matplotlib/offsetbox.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/matplotlib/offsetbox.py b/lib/matplotlib/offsetbox.py index 890a2a485191..0c7d3ee40efd 100644 --- a/lib/matplotlib/offsetbox.py +++ b/lib/matplotlib/offsetbox.py @@ -1650,6 +1650,7 @@ def finalize_offset(self): def __init__(self, ref_artist, use_blit=False): self.ref_artist = ref_artist self.got_artist = False + self.got_other_artist = False self.canvas = self.ref_artist.figure.canvas self._use_blit = use_blit and self.canvas.supports_blit @@ -1677,7 +1678,9 @@ def on_motion_blit(self, evt): self.canvas.blit(self.ref_artist.figure.bbox) def on_pick(self, evt): - if evt.artist == self.ref_artist: + if self.got_other_artist: + return + if self.got_artist or evt.artist == self.ref_artist: self.mouse_x = evt.mouseevent.x self.mouse_y = evt.mouseevent.y @@ -1696,8 +1699,11 @@ def on_pick(self, evt): self._c1 = self.canvas.mpl_connect('motion_notify_event', self.on_motion) self.save_offset() + else: + self.got_other_artist = True def on_release(self, event): + self.got_other_artist = False if self.got_artist: self.finalize_offset() self.got_artist = False