[PATCH inputproto XI 2.2] Set a flag on the pointer-emulating touch event

Chase Douglas chase.douglas at canonical.com
Mon Jan 2 17:55:47 PST 2012


On 01/02/2012 03:29 PM, Peter Hutterer wrote:
> Toolkits need to know which touch event emulated a pointer event and which
> ones do not. To quote Carlos Garnacho:
> 
>     GTK+ does client-side windows by default (GdkWindows without a backing X
>     window), for this to work the toplevel window in the client needs to
>     select for more events that it wouldn't normally select for in order to
>     cater for the event masks in such child "windows". This means that
>     ideally GTK+ should set the touch events mask in the toplevel, and then
>     find out whether the "window" would receive pointer or touch events for
>     the sequence emulating the pointer, and perform the emulation itself.
> 
> Reported-by: Carlos Garnacho <carlosg at gnome.org>
> Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
> ---
> IIRC we did discuss this months ago and decided not to set the flag but the
> above use-case cannot easily be solved right now. Adding this flag in the
> server is simple enough.
> 
>  XI2.h              |    1 +
>  specs/XI2proto.txt |    8 ++++++--
>  2 files changed, 7 insertions(+), 2 deletions(-)
> 
> diff --git a/XI2.h b/XI2.h
> index 4368006..e864b06 100644
> --- a/XI2.h
> +++ b/XI2.h
> @@ -158,6 +158,7 @@
>  #define XIPointerEmulated                       (1 << 16)
>  /* Device event flags (touch events only) */
>  #define XITouchPendingEnd                       (1 << 16)
> +#define XITouchEmulatingPointer                 (1 << 17)

Is this easier than having a dual-purpose XIPointerEmulated flag? We
would have to push XITouchPendingEnd to the 17th bit, but an ABI break
right now isn't too bad.

Or, do you have a specific reason why we shouldn't reuse the flag?

(Cc'd Carlos in case he has a preference.)

-- Chase


More information about the xorg-devel mailing list