From 91cd2f8debec2245303c3dadd3165790778209ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Sat, 23 Dec 2023 01:39:53 +0100 Subject: [PATCH] Catch InvalidOperation when rounding inserted number Closes #12866 (grafted from 1d56c462e03ce4eb93a1cd1e4dad10cd736e1105) --HG-- branch : 7.0 --- tryton/tryton/common/number_entry.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/tryton/tryton/common/number_entry.py b/tryton/tryton/common/number_entry.py index 4aeee1955d..b28b0a0f40 100644 --- a/tryton/tryton/common/number_entry.py +++ b/tryton/tryton/common/number_entry.py @@ -64,9 +64,12 @@ class NumberEntry(Gtk.Entry, Gtk.Editable): value = Decimal(locale.delocalize(text, self.monetary)) except (ValueError, InvalidOperation): return position - if (value and self.__digits is not None - and (round(value, self.__digits) != value - or value.as_tuple().exponent < -self.__digits)): + try: + if (value and self.__digits is not None + and (round(value, self.__digits) != value + or value.as_tuple().exponent < -self.__digits)): + return position + except InvalidOperation: return position buffer_.insert_text(position, new_text, len(new_text)) return position + len(new_text)