summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthieu Herrb <matthieu.herrb@laas.fr>2012-04-28 19:08:11 +0200
committerMatthieu Herrb <matthieu.herrb@laas.fr>2012-04-28 19:08:11 +0200
commit24f8ed779f8f91e7a354ca249196b5cb62c9a7aa (patch)
treecb7b693b751aa6fb41a436470dd048af68ba4d6f
parent3db846f9a8c45cb970884258dcbd14b144d2952b (diff)
parent240cd0675b019f90bec481a17f3bf8ea99efe972 (diff)
Merge remote-tracking branch 'origin/server-1.11-branch' into obsd-server-1.11-branchobsd-server-1.11-branch
-rw-r--r--dix/getevents.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/dix/getevents.c b/dix/getevents.c
index 058fa8ac7..bd8fd220e 100644
--- a/dix/getevents.c
+++ b/dix/getevents.c
@@ -198,9 +198,11 @@ set_valuators(DeviceIntPtr dev, DeviceEvent* event, ValuatorMask *mask)
{
int i;
+ if (!dev->valuator)
+ return;
/* Set the data to the previous value for unset absolute axes. The values
* may be used when sent as part of an XI 1.x valuator event. */
- for (i = 0; i < valuator_mask_size(mask); i++)
+ for (i = 0; (i < valuator_mask_size(mask)) && (i < dev->valuator->numAxes); i++)
{
if (valuator_mask_isset(mask, i))
{
@@ -640,7 +642,7 @@ clipAxis(DeviceIntPtr pDev, int axisNum, int *val)
{
AxisInfoPtr axis;
- if (axisNum >= pDev->valuator->numAxes)
+ if (!pDev->valuator || axisNum >= pDev->valuator->numAxes)
return;
axis = pDev->valuator->axes + axisNum;
@@ -1185,7 +1187,8 @@ GetPointerEvents(InternalEvent *events, DeviceIntPtr pDev, int type, int buttons
if (flags & POINTER_ABSOLUTE)
{
- if (flags & POINTER_SCREEN) /* valuators are in screen coords */
+ if ((flags & POINTER_SCREEN) && /* valuators are in screen coords */
+ pDev->valuator && (pDev->valuator->numAxes >= 2))
{
int scaled;