xserver-multidpi/dix
Peter Hutterer d90b5f8301 dix: fix up coordinate scaling when external monitors are present
The goal of all this is to get an x/y motion reflecting the motion
on the device, i.e. a circle on the device is a circle on the screen.

This is currently done by scaling the y coordinate depending on the screen
ratio vs device ratio. Depending on that ratio the movement on the y axis may
be accelerated (ratio < 1) or slowed (ratio > 1). This leads to the weird
effect that changing the screen ratio by plugging a new monitor changes the
speed of the touchpad.

Use a different algorithm: calculate the physical movement on the device, map
that to the same-ish distance on the screen, then convert that back into a
device-specific vector. This way we get the same mapping regardless of the
current screen dimensions.

Since the pointer accel code doesn't take device resolution into account, make
sure we apply our crazy mapping before we accelerate. This way we accelerate
resolution-independent.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2014-06-23 11:04:55 +10:00
..
.gitignore dix and os: gitignore dix.O and os.O 2011-09-23 17:14:47 -07:00
atom.c Introduce a consistent coding style 2012-03-21 13:54:42 -07:00
buildatoms XFree86 4.3.0.1 2003-11-14 16:49:22 +00:00
BuiltInAtoms R6.6 is the Xorg base-line 2003-11-14 15:54:54 +00:00
colormap.c Replace 'pointer' type with 'void *' 2014-01-12 10:24:11 -08:00
cursor.c Replace 'pointer' type with 'void *' 2014-01-12 10:24:11 -08:00
devices.c dix: fix pixmap leak on server reset 2014-06-04 21:32:30 -07:00
dispatch.c dix: fix a -Wshadow warning 2014-02-05 15:10:27 +10:00
dispatch.h Introduce a consistent coding style 2012-03-21 13:54:42 -07:00
dixfonts.c dixfonts: Turn a missing directory ErrorF into a DebugF 2014-04-21 15:01:02 -07:00
dixutils.c glx: Move the GLX variable caching what GL context is current to dix. 2014-04-23 10:32:02 -07:00
enterleave.c input: drop FP1616 macro 2012-11-19 12:12:23 +10:00
enterleave.h dix: Move DeviceFocusEvent from Xi into enterleave.c 2012-05-17 08:50:44 +10:00
eventconvert.c dix: send the current axis value in DeviceChangedEvents (#62321) 2013-05-07 09:40:42 +10:00
events.c dix: reference the cursor just once in InitializeSprite() 2014-06-04 21:32:14 -07:00
extension.c Clean up warnings in DIX 2014-01-12 10:14:49 -08:00
ffs.c Introduce a consistent coding style 2012-03-21 13:54:42 -07:00
gc.c dix: Allow NULL stipple in ChangeGC 2014-03-26 12:58:40 -07:00
getevents.c dix: fix up coordinate scaling when external monitors are present 2014-06-23 11:04:55 +10:00
globals.c Handle -displayfd and an explicit display number sensibly 2014-03-27 14:34:34 +00:00
glyphcurs.c Replace 'pointer' type with 'void *' 2014-01-12 10:24:11 -08:00
grabs.c Merge remote-tracking branch 'whot/for-keith' 2014-01-22 11:33:53 -08:00
initatoms.c Introduce a consistent coding style 2012-03-21 13:54:42 -07:00
inpututils.c dix: fix button state check before changing a button mapping 2014-02-05 07:50:16 +10:00
main.c dix: Clear any existing selections before initializing privates 2014-03-06 17:15:11 -08:00
Makefile.am Allow DDX to provide a main() 2013-07-23 23:56:58 +01:00
pixmap.c Replace 'pointer' type with 'void *' 2014-01-12 10:24:11 -08:00
privates.c Replace 'pointer' type with 'void *' 2014-01-12 10:24:11 -08:00
property.c Replace 'pointer' type with 'void *' 2014-01-12 10:24:11 -08:00
protocol.txt Add RANDR 1.4 requests & events to dix/protocol.txt 2014-01-29 15:22:44 -08:00
ptrveloc.c dix: allow a ConstantDeceleration between 0 and 1 (#66134) 2013-07-17 14:27:26 +10:00
region.c Add a RegionDuplicate function 2013-10-31 16:58:16 -07:00
registry.c dix: reset the registry before quitting 2013-05-07 09:41:02 +10:00
resource.c Replace 'pointer' type with 'void *' 2014-01-12 10:24:11 -08:00
selection.c Use C99 designated initializers in dix Events 2012-07-09 22:52:30 -07:00
stubmain.c Allow DDX to provide a main() 2013-07-23 23:56:58 +01:00
swaprep.c Remove unneccesary casts from WriteToClient calls 2012-07-09 19:12:56 -07:00
swapreq.c Use C99 designated initializers in dix Events 2012-07-09 22:52:30 -07:00
tables.c Make indentation of dix/tables.c much more consistent and readable 2012-08-06 15:22:53 -07:00
touch.c Replace 'pointer' type with 'void *' 2014-01-12 10:24:11 -08:00
window.c Replace 'pointer' type with 'void *' 2014-01-12 10:24:11 -08:00
Xserver-dtrace.h.in dix: add dtrace probes to input API 2012-03-22 11:33:42 +10:00
Xserver.d dix: add dtrace probes to input API 2012-03-22 11:33:42 +10:00