diff options
author | marha <marha@users.sourceforge.net> | 2012-02-29 13:34:55 +0100 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2012-02-29 13:34:55 +0100 |
commit | 15a500d3edb03668b43cc6898fafcda024d0f006 (patch) | |
tree | 5bdb867e749ea1f56b9c480d195027e38a0bbab2 /xorg-server | |
parent | c4f44c07c6662d1ce08603945ccc4fa5afaa742a (diff) | |
download | vcxsrv-15a500d3edb03668b43cc6898fafcda024d0f006.tar.gz vcxsrv-15a500d3edb03668b43cc6898fafcda024d0f006.tar.bz2 vcxsrv-15a500d3edb03668b43cc6898fafcda024d0f006.zip |
xserver fontconfig mesa pixman git update 29 Feb 2012
Diffstat (limited to 'xorg-server')
-rw-r--r-- | xorg-server/dix/getevents.c | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/xorg-server/dix/getevents.c b/xorg-server/dix/getevents.c index 6ea4ba010..306d0ff09 100644 --- a/xorg-server/dix/getevents.c +++ b/xorg-server/dix/getevents.c @@ -840,10 +840,15 @@ scale_to_desktop(DeviceIntPtr dev, ValuatorMask *mask, ScreenPtr scr = miPointerGetScreen(dev); double x, y; - BUG_WARN(!dev->valuator); - BUG_WARN(dev->valuator->numAxes < 2); + BUG_WARN(!dev->valuator || dev->valuator->numAxes < 2); if (!dev->valuator || dev->valuator->numAxes < 2) + { + /* if we have no axes, last.valuators must be in screen coords + * anyway */ + *devx = *screenx = dev->last.valuators[0]; + *devy = *screeny = dev->last.valuators[1]; return scr; + } if (valuator_mask_isset(mask, 0)) x = valuator_mask_get_double(mask, 0); @@ -1493,8 +1498,6 @@ GetPointerEvents(InternalEvent *events, DeviceIntPtr pDev, int type, { CARD32 ms = GetTimeInMillis(); int num_events = 0, nev_tmp; - int h_scroll_axis = pDev->valuator->h_scroll_axis; - int v_scroll_axis = pDev->valuator->v_scroll_axis; ValuatorMask mask; ValuatorMask scroll; int i; @@ -1519,6 +1522,14 @@ GetPointerEvents(InternalEvent *events, DeviceIntPtr pDev, int type, { double val, adj; int axis; + int h_scroll_axis = -1; + int v_scroll_axis = -1; + + if (pDev->valuator) + { + h_scroll_axis = pDev->valuator->h_scroll_axis; + v_scroll_axis = pDev->valuator->v_scroll_axis; + } /* Up is negative on valuators, down positive */ switch (buttons) { |