summaryrefslogtreecommitdiff
path: root/src/XExtInt.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/XExtInt.c')
-rw-r--r--src/XExtInt.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/src/XExtInt.c b/src/XExtInt.c
index a35fcc6..ccd3238 100644
--- a/src/XExtInt.c
+++ b/src/XExtInt.c
@@ -1616,6 +1616,8 @@ size_classes(xXIAnyInfo* from, int nclasses)
return len;
}
+#define FP3232_TO_DOUBLE(x) ((double) (x).integral + (double) (x).frac / (1ULL << 32))
+
/* Copy classes from any into to->classes and return the number of bytes
* copied. Memory layout of to->classes is
* [clsptr][clsptr][clsptr][classinfo][classinfo]...
@@ -1724,10 +1726,9 @@ copy_classes(XIDeviceInfo* to, xXIAnyInfo* from, int *nclasses)
cls_lib->number = cls_wire->number;
cls_lib->label = cls_wire->label;
cls_lib->resolution = cls_wire->resolution;
- cls_lib->min = cls_wire->min.integral;
- cls_lib->max = cls_wire->max.integral;
- cls_lib->value = cls_wire->value.integral;
- /* FIXME: fractional parts */
+ cls_lib->min = FP3232_TO_DOUBLE(cls_wire->min);
+ cls_lib->max = FP3232_TO_DOUBLE(cls_wire->max);
+ cls_lib->value = FP3232_TO_DOUBLE(cls_wire->value);
cls_lib->mode = cls_wire->mode;
to->classes[cls_idx++] = any_lib;
@@ -2000,8 +2001,6 @@ wireToTouchOwnershipEvent(xXITouchOwnershipEvent *in,
return 1;
}
-#define FP3232_TO_DOUBLE(x) ((double) (x).integral + (x).frac / (1ULL << 32))
-
static int
wireToBarrierEvent(xXIBarrierEvent *in, XGenericEventCookie *cookie)
{