Skip to content

Commit da1ae8a

Browse files
committed
Fix rubberband visibility for tk backend
1 parent 333fcaf commit da1ae8a

File tree

1 file changed

+18
-10
lines changed

1 file changed

+18
-10
lines changed

lib/matplotlib/backends/_backend_tk.py

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,8 @@ def filter_destroy(event):
212212

213213
self._tkcanvas.focus_set()
214214

215-
self._rubberband_rect = None
215+
self._rubberband_rect_black = None
216+
self._rubberband_rect_white = None
216217

217218
def _update_device_pixel_ratio(self, event=None):
218219
# Tk gives scaling with respect to 72 DPI, but Windows screens are
@@ -667,21 +668,28 @@ def set_message(self, s):
667668

668669
def draw_rubberband(self, event, x0, y0, x1, y1):
669670
# Block copied from remove_rubberband for backend_tools convenience.
670-
if self.canvas._rubberband_rect:
671-
self.canvas._tkcanvas.delete(self.canvas._rubberband_rect)
671+
if self.canvas._rubberband_rect_white:
672+
self.canvas._tkcanvas.delete(self.canvas._rubberband_rect_white)
673+
if self.canvas._rubberband_rect_black:
674+
self.canvas._tkcanvas.delete(self.canvas._rubberband_rect_black)
672675
height = self.canvas.figure.bbox.height
673676
y0 = height - y0
674677
y1 = height - y1
675-
self.canvas._rubberband_rect = self.canvas._tkcanvas.create_rectangle(
676-
x0, y0, x1, y1)
678+
self.canvas._rubberband_rect_white = self.canvas._tkcanvas.create_rectangle(
679+
x0, y0, x1, y1, outline='white')
680+
self.canvas._rubberband_rect_black = self.canvas._tkcanvas.create_rectangle(
681+
x0, y0, x1, y1, dash=(1, 1))
677682

678683
def remove_rubberband(self):
679-
if self.canvas._rubberband_rect:
680-
self.canvas._tkcanvas.delete(self.canvas._rubberband_rect)
681-
self.canvas._rubberband_rect = None
684+
if self.canvas._rubberband_rect_white:
685+
self.canvas._tkcanvas.delete(self.canvas._rubberband_rect_white)
686+
self.canvas._rubberband_rect_white = None
687+
if self.canvas._rubberband_rect_black:
688+
self.canvas._tkcanvas.delete(self.canvas._rubberband_rect_black)
689+
self.canvas._rubberband_rect_black = None
682690

683691
lastrect = _api.deprecated("3.6")(
684-
property(lambda self: self.canvas._rubberband_rect))
692+
property(lambda self: self.canvas._rubberband_rect_black))
685693

686694
def _set_image_for_button(self, button):
687695
"""
@@ -907,7 +915,7 @@ def remove_rubberband(self):
907915
self._make_classic_style_pseudo_toolbar())
908916

909917
lastrect = _api.deprecated("3.6")(
910-
property(lambda self: self.figure.canvas._rubberband_rect))
918+
property(lambda self: self.figure.canvas._rubberband_rect_black))
911919

912920

913921
@_api.deprecated("3.5", alternative="ToolSetCursor")

0 commit comments

Comments
 (0)