From 4b5e7cc07ec451750621e1d2f9c6afcf17975af9 Mon Sep 17 00:00:00 2001 From: skall Date: Thu, 1 Feb 2018 13:26:42 +0100 Subject: [PATCH 1/2] Fix float division by zero --- kivy/input/providers/mtdev.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/kivy/input/providers/mtdev.py b/kivy/input/providers/mtdev.py index 429aa78b6..404574a53 100644 --- a/kivy/input/providers/mtdev.py +++ b/kivy/input/providers/mtdev.py @@ -220,7 +220,8 @@ else: queue.append((action, touch)) def normalize(value, vmin, vmax): - return (value - vmin) / float(vmax - vmin) + divisor = float(vmax - vmin) if vmax > vmin else 1 + return (value - vmin) / divisor # open mtdev device _fn = input_fn From 4ec51f125ef0e7c54a71d0d25cc3a18ed854cd1d Mon Sep 17 00:00:00 2001 From: skall Date: Fri, 2 Feb 2018 14:44:08 +0100 Subject: [PATCH 2/2] Handling ZeroDivisionError in mtdev input provider --- kivy/input/providers/mtdev.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/kivy/input/providers/mtdev.py b/kivy/input/providers/mtdev.py index 404574a53..f9bee3324 100644 --- a/kivy/input/providers/mtdev.py +++ b/kivy/input/providers/mtdev.py @@ -220,8 +220,10 @@ else: queue.append((action, touch)) def normalize(value, vmin, vmax): - divisor = float(vmax - vmin) if vmax > vmin else 1 - return (value - vmin) / divisor + try: + return (value - vmin) / float(vmax - vmin) + except ZeroDivisionError: # it's both in py2 and py3 + return (value - vmin) # open mtdev device _fn = input_fn