How to help on multitouch?

Chase Douglas chase.douglas at
Sun Jun 13 19:28:04 PDT 2010

Hi all,

I've recently become interested in multitouch on linux, and I'd like to
get involved. I've read some of the back threads, and I agree with
Peter's Direct Input Devices approach. I came to a nearly identical
concept when I was thinking about how the iPhone handled multitouch
(I've done some iPhone development in the past).

So first, where does the DIDs work stand? I would be happy to lend a
hand with any coding. I've not done any X work before, the kernel has
been my mainstay, but I can get my elbows dirty :).

Second, I was thinking about the DIDs approach, but I have some concerns
about situations where legacy apps don't listen for them. My thought is
that if a legacy app has not registered to listen for DIDs, the X server
should do some work on its behalf. The server could create one master
pointer for each legacy app and warp it to the location of the first
touch in the app. Multiple touches beyond the first inside such an app
do nothing. This would allow multitouch DIDs to control legacy apps
while avoiding some of the master pointer dynamic allocation issues that
required multitouchd to have a pool of pre-allocated pointers for.

Lastly, I have concerns about keyboard focus with multitouch. I can't
think of a way to have the server manage focus with the help of DIDs due
to the fact that multiple apps may be used at the same time. However,
even when an app is used it may not need to become focused. For example,
if you are just making some motion to scroll a window that is partially
behind the focused window, you might not want to focus it. So, I think
the best way to handle focus would be to have the application receiving
DID events ask for focus if it feels it should gain it.

I'd love to hear others' thoughts on these ideas. I'm really new to X
development, so I may have some concepts wrong in my head, so please let
me know if I've got anything wrong :).


-- Chase

More information about the xorg-devel mailing list