Skip to content

Commit d85b6ee

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

File tree

1 file changed

+20
-10
lines changed

1 file changed

+20
-10
lines changed

lib/matplotlib/backends/_backend_tk.py

Lines changed: 20 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,30 @@ 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 = (
679+
self.canvas._tkcanvas.create_rectangle(
680+
x0, y0, x1, y1, outline='white'))
681+
self.canvas._rubberband_rect_black = (
682+
self.canvas._tkcanvas.create_rectangle(
683+
x0, y0, x1, y1, dash=(1, 1)))
677684

678685
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
686+
if self.canvas._rubberband_rect_white:
687+
self.canvas._tkcanvas.delete(self.canvas._rubberband_rect_white)
688+
self.canvas._rubberband_rect_white = None
689+
if self.canvas._rubberband_rect_black:
690+
self.canvas._tkcanvas.delete(self.canvas._rubberband_rect_black)
691+
self.canvas._rubberband_rect_black = None
682692

683693
lastrect = _api.deprecated("3.6")(
684-
property(lambda self: self.canvas._rubberband_rect))
694+
property(lambda self: self.canvas._rubberband_rect_black))
685695

686696
def _set_image_for_button(self, button):
687697
"""
@@ -907,7 +917,7 @@ def remove_rubberband(self):
907917
self._make_classic_style_pseudo_toolbar())
908918

909919
lastrect = _api.deprecated("3.6")(
910-
property(lambda self: self.figure.canvas._rubberband_rect))
920+
property(lambda self: self.figure.canvas._rubberband_rect_black))
911921

912922

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

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy