summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEmmanuele Bassi <ebassi@gnome.org>2013-09-03 11:51:19 +0100
committerEmmanuele Bassi <ebassi@gnome.org>2013-09-23 23:21:19 +0100
commitfb8eacfb0256a211ca79366945c8f4eb4962be4e (patch)
tree38c0e06a6fc0ccea87b28a4df19010a21a5cfb12
parente90022f3c790c7d9b181e9c1874e4a0a82c0df43 (diff)
downloadclutter-fb8eacfb0256a211ca79366945c8f4eb4962be4e.tar.gz
device: Guard against divisions by zero
The range of a device could be 0, so we need to bail out from the scaling during the axis translation. https://bugzilla.gnome.org/show_bug.cgi?id=707033
-rw-r--r--clutter/clutter-input-device.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/clutter/clutter-input-device.c b/clutter/clutter-input-device.c
index 38f7fd737..07951e33f 100644
--- a/clutter/clutter-input-device.c
+++ b/clutter/clutter-input-device.c
@@ -46,6 +46,8 @@
#include "clutter-private.h"
#include "clutter-stage-private.h"
+#include <math.h>
+
enum
{
PROP_0,
@@ -1218,6 +1220,9 @@ _clutter_input_device_translate_axis (ClutterInputDevice *device,
info->axis == CLUTTER_INPUT_AXIS_Y)
return FALSE;
+ if (fabs (info->max_value - info->min_value) < 0.0000001)
+ return FALSE;
+
width = info->max_value - info->min_value;
real_value = (info->max_axis * (value - info->min_value)
+ info->min_axis * (info->max_value - value))