From 1fa9e9e49560f1f99272142e5920831223e28a33 Mon Sep 17 00:00:00 2001 From: Hiren Date: Wed, 25 Mar 2026 19:26:58 -0400 Subject: [PATCH] fix: skip widgets with empty or infinite rects in remove_rotation remove_rotation() calls widget.update() on every widget, but widgets with empty or infinite rects (like invisible signature fields) cause ValueError('bad rect') during validation. Skip these widgets and also guard widget.update() with a try/except for any remaining edge cases. Fixes #4950 --- src/__init__.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/__init__.py b/src/__init__.py index e3845575b..550967e5d 100644 --- a/src/__init__.py +++ b/src/__init__.py @@ -11913,8 +11913,13 @@ def remove_rotation(self): pass for widget in self.widgets(): # modify field rectangles r = widget.rect * rot + if r.is_empty or r.is_infinite: + continue widget.rect = r - widget.update() + try: + widget.update() + except ValueError: + pass return rot # the inverse of the generated derotation matrix def cluster_drawings(