Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 39a44a3

Browse files
authored
Merge pull request #28751 from meeseeksmachine/auto-backport-of-pr-28271-on-v3.9.x
Backport PR #28271 on branch v3.9.x (Fix draggable legend disappearing when picking while use_blit=True)
2 parents 5d9f849 + 83251ac commit 39a44a3

File tree

1 file changed

+10
-6
lines changed

1 file changed

+10
-6
lines changed

lib/matplotlib/offsetbox.py

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1486,25 +1486,29 @@ def on_motion(self, evt):
14861486
self.canvas.draw()
14871487

14881488
def on_pick(self, evt):
1489-
if self._check_still_parented() and evt.artist == self.ref_artist:
1490-
self.mouse_x = evt.mouseevent.x
1491-
self.mouse_y = evt.mouseevent.y
1492-
self.got_artist = True
1493-
if self._use_blit:
1489+
if self._check_still_parented():
1490+
if evt.artist == self.ref_artist:
1491+
self.mouse_x = evt.mouseevent.x
1492+
self.mouse_y = evt.mouseevent.y
1493+
self.save_offset()
1494+
self.got_artist = True
1495+
if self.got_artist and self._use_blit:
14941496
self.ref_artist.set_animated(True)
14951497
self.canvas.draw()
14961498
self.background = \
14971499
self.canvas.copy_from_bbox(self.ref_artist.figure.bbox)
14981500
self.ref_artist.draw(
14991501
self.ref_artist.figure._get_renderer())
15001502
self.canvas.blit()
1501-
self.save_offset()
15021503

15031504
def on_release(self, event):
15041505
if self._check_still_parented() and self.got_artist:
15051506
self.finalize_offset()
15061507
self.got_artist = False
15071508
if self._use_blit:
1509+
self.canvas.restore_region(self.background)
1510+
self.ref_artist.draw(self.ref_artist.figure._get_renderer())
1511+
self.canvas.blit()
15081512
self.ref_artist.set_animated(False)
15091513

15101514
def _check_still_parented(self):

0 commit comments

Comments
 (0)