dix: more device scaling insanity.
Assuming master->last.valuators is in screen coords, SD's are always in device coordinates. 1. If an event comes in, scale masters->last to the device, drop into device's last->valuators. 2. Apply motion from the actual event 3. Scale back to screen coords, check if we may need to cross screens 4. Drop screen coords into master->last 5. Rescale to device coords, drop into deviceValuator event and SD->last 6. Drop screen coords into ev->root_x/y Whoopee...
This commit is contained in:
@@ -422,6 +422,8 @@ typedef struct _DeviceIntRec {
|
||||
} u;
|
||||
|
||||
/* last valuator values recorded, not posted to client;
|
||||
* for slave devices, valuators is in device coordinates
|
||||
* for master devices, valuators is in screen coordinates
|
||||
* see dix/getevents.c */
|
||||
struct {
|
||||
int valuators[MAX_VALUATORS];
|
||||
|
||||
Reference in New Issue
Block a user