diff options
author | marha <marha@users.sourceforge.net> | 2011-07-04 14:26:33 +0200 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2011-07-04 14:26:33 +0200 |
commit | 7cc339a490eac34596e97788c3b0092d58459cf6 (patch) | |
tree | bc9a29aff5729a5b7314022bc3fea8fdff721dc0 /xorg-server/dix/getevents.c | |
parent | 3bbcbc59b6d98f09b26f39d6208faec76cc6aa3e (diff) | |
parent | 5c671fd7f8198bed2fc32b33b81d1081f1486ed9 (diff) | |
download | vcxsrv-7cc339a490eac34596e97788c3b0092d58459cf6.tar.gz vcxsrv-7cc339a490eac34596e97788c3b0092d58459cf6.tar.bz2 vcxsrv-7cc339a490eac34596e97788c3b0092d58459cf6.zip |
Merge remote-tracking branch 'origin/released'
Conflicts:
mesalib/common.py
mesalib/docs/GL3.txt
mesalib/scons/custom.py
mesalib/scons/gallium.py
mesalib/src/SConscript
xorg-server/Xext/xtest.c
xorg-server/dix/getevents.c
xorg-server/dix/window.c
xorg-server/exa/exa_accel.c
xorg-server/exa/exa_migration_classic.c
xorg-server/exa/exa_unaccel.c
xorg-server/hw/kdrive/ephyr/ephyr.c
xorg-server/hw/kdrive/ephyr/ephyr.h
xorg-server/hw/kdrive/ephyr/ephyrinit.c
xorg-server/hw/kdrive/ephyr/hostx.c
xorg-server/hw/kdrive/src/kdrive.h
xorg-server/hw/kdrive/src/kinput.c
xorg-server/hw/xfree86/common/xf86Init.c
xorg-server/hw/xfree86/dri2/dri2.c
xorg-server/hw/xnest/Init.c
xorg-server/hw/xquartz/darwin.c
xorg-server/hw/xquartz/darwinEvents.c
xorg-server/hw/xquartz/darwinEvents.h
xorg-server/hw/xquartz/darwinXinput.c
xorg-server/hw/xwin/InitInput.c
xorg-server/include/input.h
xorg-server/include/window.h
xorg-server/mi/mipointer.c
xorg-server/test/Makefile.am
xorg-server/test/xi2/protocol-eventconvert.c
Diffstat (limited to 'xorg-server/dix/getevents.c')
-rw-r--r-- | xorg-server/dix/getevents.c | 25 |
1 files changed, 18 insertions, 7 deletions
diff --git a/xorg-server/dix/getevents.c b/xorg-server/dix/getevents.c index 56b3d6128..7e901942f 100644 --- a/xorg-server/dix/getevents.c +++ b/xorg-server/dix/getevents.c @@ -335,6 +335,8 @@ updateSlaveDeviceCoords(DeviceIntPtr master, DeviceIntPtr pDev) * position of the pointer */
pDev->last.valuators[0] = master->last.valuators[0];
pDev->last.valuators[1] = master->last.valuators[1];
+ pDev->last.remainder[0] = master->last.remainder[0];
+ pDev->last.remainder[1] = master->last.remainder[1];
if (!pDev->valuator)
return;
@@ -354,14 +356,19 @@ updateSlaveDeviceCoords(DeviceIntPtr master, DeviceIntPtr pDev) if ((lastSlave = master->last.slave) && lastSlave->valuator) {
for (i = 2; i < pDev->valuator->numAxes; i++) {
if (i >= lastSlave->valuator->numAxes)
+ {
pDev->last.valuators[i] = 0;
+ pDev->last.remainder[i] = 0;
+ }
else
+ {
pDev->last.valuators[i] =
rescaleValuatorAxis(pDev->last.valuators[i],
pDev->last.remainder[i],
&pDev->last.remainder[i],
lastSlave->valuator->axes + i,
pDev->valuator->axes + i, 0);
+ }
}
}
@@ -1185,14 +1192,17 @@ GetPointerEvents(InternalEvent *events, DeviceIntPtr pDev, int type, int buttons events = UpdateFromMaster(events, pDev, DEVCHANGE_POINTER_EVENT, &num_events);
- raw = &events->raw_event;
- events++;
- num_events++;
-
valuator_mask_copy(&mask, mask_in);
- init_raw(pDev, raw, ms, type, buttons);
- set_raw_valuators(raw, &mask, raw->valuators.data_raw);
+ if ((flags & POINTER_NORAW) == 0)
+ {
+ raw = &events->raw_event;
+ events++;
+ num_events++;
+
+ init_raw(pDev, raw, ms, type, buttons);
+ set_raw_valuators(raw, &mask, raw->valuators.data_raw);
+ }
if (flags & POINTER_ABSOLUTE)
{
@@ -1231,7 +1241,8 @@ GetPointerEvents(InternalEvent *events, DeviceIntPtr pDev, int type, int buttons moveRelative(pDev, &x, &y, &mask);
}
- set_raw_valuators(raw, &mask, raw->valuators.data);
+ if ((flags & POINTER_NORAW) == 0)
+ set_raw_valuators(raw, &mask, raw->valuators.data);
positionSprite(pDev, (flags & POINTER_ABSOLUTE) ? Absolute : Relative,
&x, &y, x_frac, y_frac, scr, &cx, &cy, &cx_frac, &cy_frac);
|