On Tue, 2010-08-31 at 14:41 -0400, Chase Douglas wrote: > The trackpad speaks a similar, but different, protocol from the magic > mouse. However, only small code tweaks here and there are needed to make > basic multitouch work. > > Extra logic is required for single-touch emulation of the touchpad. The > changes made here take the approach that only one finger may emulate the > single pointer when multiple fingers have touched the screen. Once that > finger is raised, all touches must be raised before any further single > touch events can be sent. > > Sometimes the magic trackpad sends two distinct touch reports as one big > report. Simply splitting the packet in two and resending them through > magicmouse_raw_event ensures they are handled properly. > > I also added myself to the copyright statement. > > Signed-off-by: Chase Douglas <chase.douglas@xxxxxxxxxxxxx> > --- > drivers/hid/hid-core.c | 1 + > drivers/hid/hid-ids.h | 1 + > drivers/hid/hid-magicmouse.c | 229 ++++++++++++++++++++++++++++++++---------- > 3 files changed, 176 insertions(+), 55 deletions(-) Acked-by: Michael Poole <mdpoole@xxxxxxxxxxx> One behavior that slightly surprised me -- which I believe is a quirk due to userspace not expecting touchpads to have button switches -- is that touches on the trackpad that do not close the switch can still be interpreted by X as clicks. Once the discussions about if/how to tweak this code settle down, I'll put together a patch to change the "down" and "last_up" logic as I suggested earlier. Michael Poole -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html