From 04a55ebad1c2d42fb0fd78e7fa2fb7ac407cf2d8 Mon Sep 17 00:00:00 2001 From: Elliott Sales de Andrade Date: Wed, 3 Jun 2020 18:31:08 -0400 Subject: [PATCH] Backport PR #17470: FIX: add guardrails for too big tk figures --- lib/matplotlib/backends/_backend_tk.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/lib/matplotlib/backends/_backend_tk.py b/lib/matplotlib/backends/_backend_tk.py index 5c1716ec2477..739629a14ac3 100644 --- a/lib/matplotlib/backends/_backend_tk.py +++ b/lib/matplotlib/backends/_backend_tk.py @@ -460,6 +460,17 @@ def _get_toolmanager(self): return toolmanager def resize(self, width, height): + max_size = 1_400_000 # the measured max on xorg 1.20.8 was 1_409_023 + + if (width > max_size or height > max_size) and sys.platform == 'linux': + raise ValueError( + 'You have requested to resize the ' + f'Tk window to ({width}, {height}), one of which ' + f'is bigger than {max_size}. At larger sizes xorg will ' + 'either exit with an error on newer versions (~1.20) or ' + 'cause corruption on older version (~1.19). We ' + 'do not expect a window over a million pixel wide or tall ' + 'to be intended behavior.') self.canvas._tkcanvas.configure(width=width, height=height) def show(self): 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