xserver-multidpi/mi
Peter Hutterer 401150d7dc input: change pointer screen crossing behaviour for multiple ScreenRecs
miPointerSetPosition traditionally took coordinates on a per-screen basis,
triggering a screen switch when these went out-of-bounds. For absolute
devices, this prevented screen crossing in the negative x/y direction.

This patch changes the event generation patch to handle screen coordinates
in a desktop range (i.e. all screens together). Screen switches are
triggered when these coordinates are not on the current screen.

This unifies the pointer behaviour of single ScreenRec multihead and
multiple ScreenRecs multihead in that the cursor by default moves about the
whole screen rather than be confined to one single screen. The
transformation matrix may then be used to actually confine the cursor to the
screen again.

Note: fill_pointer_events has to deal with several different coordinate
systems. Make sure you read the comment before trying to understand the code.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2011-10-13 11:34:43 +10:00
..
Makefile.am dix: Remove the backing store leftovers 2010-11-30 13:46:08 -05:00
mi.h dix: rename mieqSwitchScreen argument fromDix → set_dequeue_screen, document 2011-08-22 15:56:51 +10:00
miarc.c Replace Fabs() macro with fabs() function 2011-09-21 17:12:04 -04:00
mibitblt.c Remove unnecessary parentheses around return values in functions 2010-06-10 06:42:42 -07:00
mibstore.c dix: Remove the backing store leftovers 2010-11-30 13:46:08 -05:00
mibstore.h dix: Remove the backing store leftovers 2010-11-30 13:46:08 -05:00
micmap.c mi: fix memory leak in miInitVisuals 2011-04-04 15:41:13 +03:00
micmap.h Change the devPrivates API to require dixRegisterPrivateKey 2010-06-05 19:23:03 -07:00
micoord.h Unifdef sgi. 2008-07-23 13:37:42 -04:00
micopy.c Call SourceValidate even if src == dst 2011-01-05 11:56:42 -08:00
micursor.c Rework symbol visibility for easier maintenance 2008-12-03 05:43:34 -02:00
midash.c Rework symbol visibility for easier maintenance 2008-12-03 05:43:34 -02:00
midispcur.c xorg: remove unused pointer values all over the server 2011-04-04 15:41:13 +03:00
mieq.c dix: rename mieqSwitchScreen argument fromDix → set_dequeue_screen, document 2011-08-22 15:56:51 +10:00
miexpose.c composite: Inhibit window background paint with manual subwindow redirection 2011-08-03 20:46:36 -07:00
mifillarc.c Replace X-allocation functions with their C89 counterparts 2010-05-13 00:22:37 +07:00
mifillarc.h Rework symbol visibility for easier maintenance 2008-12-03 05:43:34 -02:00
mifillrct.c Remove more superfluous if(p) checks around free(p) 2010-06-06 20:27:18 +07:00
mifpoly.h Replace Fabs() macro with fabs() function 2011-09-21 17:12:04 -04:00
mifpolycon.c Remove unnecessary parentheses around return values in functions 2010-06-10 06:42:42 -07:00
migc.c Clean up after removal of screen parameters from region macros. 2010-06-05 22:07:21 -07:00
migc.h Rework symbol visibility for easier maintenance 2008-12-03 05:43:34 -02:00
miglblt.c miPolyGlyphBlt: Delete redundant ValidateGC. 2010-09-13 15:58:08 -07:00
miinitext.c NO_PANORAMIX preprocessor symbol is nowhere defined 2011-01-07 09:30:45 +10:00
miline.h Change the devPrivates API to require dixRegisterPrivateKey 2010-06-05 19:23:03 -07:00
mioverlay.c Revert "mi: Remove unused overlay support" 2010-06-22 12:11:20 -07:00
mioverlay.h Revert "mi: Remove unused overlay support" 2010-06-22 12:11:20 -07:00
mipointer.c input: change pointer screen crossing behaviour for multiple ScreenRecs 2011-10-13 11:34:43 +10:00
mipointer.h mi: switch miPointerSetPosition to take doubles 2011-10-11 12:06:56 +10:00
mipointrst.h mi: remove static GenerateEvent variable. 2011-02-22 14:35:43 +10:00
mipoly.c Rework symbol visibility for easier maintenance 2008-12-03 05:43:34 -02:00
mipoly.h Rework symbol visibility for easier maintenance 2008-12-03 05:43:34 -02:00
mipolycon.c Remove unnecessary parentheses around return values in functions 2010-06-10 06:42:42 -07:00
mipolygen.c Remove unnecessary parentheses around return values in functions 2010-06-10 06:42:42 -07:00
mipolypnt.c Replace dixChangeGC with calls directly to the right variant. 2010-05-13 17:14:07 -07:00
mipolyrect.c Replace X-allocation functions with their C89 counterparts 2010-05-13 00:22:37 +07:00
mipolyseg.c Rework symbol visibility for easier maintenance 2008-12-03 05:43:34 -02:00
mipolytext.c Rework symbol visibility for easier maintenance 2008-12-03 05:43:34 -02:00
mipolyutil.c Remove unnecessary parentheses around return values in functions 2010-06-10 06:42:42 -07:00
mipushpxl.c Replace X-allocation functions with their C89 counterparts 2010-05-13 00:22:37 +07:00
miscanfill.h Remove RCS tags. Fix Xprint makefile braindamage. 2006-07-21 17:56:00 -04:00
miscrinit.c mi: Remove unused miAllocateGCPrivateIndex 2010-11-30 13:46:09 -05:00
mispans.c mi: fix memory leak in miFillUniqueSpanGroup 2011-04-04 15:41:13 +03:00
mispans.h Rename region macros to eliminate screen argument 2010-06-05 18:59:00 -07:00
misprite.c mi: fix compiler warnings ("foo" set but not used) 2011-08-22 15:56:52 +10:00
misprite.h mi: Delete unused flicker-free MoveCursor code. 2010-06-03 14:03:22 -07:00
mistruct.h Death to RCS tags. 2007-06-29 14:06:52 -04:00
mivalidate.h dix: Remove the backing store leftovers 2010-11-30 13:46:08 -05:00
mivaltree.c mi: fix compiler warnings ("foo" set but not used) 2011-08-22 15:56:52 +10:00
miwideline.c Replace Fabs() macro with fabs() function 2011-09-21 17:12:04 -04:00
miwideline.h Replace dixChangeGC with calls directly to the right variant. 2010-05-13 17:14:07 -07:00
miwindow.c mi: delete unused code 2010-09-10 21:49:29 +03:00
mizerarc.c Replace dixChangeGC with calls directly to the right variant. 2010-05-13 17:14:07 -07:00
mizerarc.h Rework symbol visibility for easier maintenance 2008-12-03 05:43:34 -02:00
mizerclip.c Rework symbol visibility for easier maintenance 2008-12-03 05:43:34 -02:00
mizerline.c mi: fix memory leak in miZeroLine 2011-04-04 15:47:58 +03:00