Usage of ivi_input interface

Jacobo Aragunde Pérez jaragunde at
Thu Mar 30 07:09:36 EDT 2017


answering both Eugen and Emre; I'm using this to implement proper
multi-seat for Chromium on GDP.

It is a special use case because the Chromium UI process behaves like a
controller of its own surfaces (the different browser windows). Imagine
the situation where there are two seats, and I assign each seat to one
browser window. Because it owns both surfaces, the Chromium UI process
will receive events coming from any seat, and must know which surface
events should be directed to.

For that reason, when the Chromium process receives an event it must
check the device it's coming from, then check which seat it belongs to,
and finally check which of the browser surfaces accepts events from that
seat before routing the event.

In the current status, the surface owning focus in Chromium (which is
only one, that must also be changed) will receive events coming from any
seat assigned to a Chromium surface.

> Normal applications should not use ilmInput API to set input
> acceptance to themselves. This would be very racy..

Not doing this at all! I would use ilmInput only to get input acceptance.

I hope this helps clarify the scenario :)

Jacobo Aragunde
Software Engineer at Igalia

On 30/03/17 12:41, Friedrich, Eugen (ADITG/SW1) wrote:
> Hi Jacobo,
> Yes you are right! 
> And I'm interested in the use-case... typically application is just listen to the input event itself. 
> Best regards
> Eugen Friedrich
> Software Group I (ADITG/SW1)
> Tel. +49 5121 49 6921
>> -----Original Message-----
>> From: Jacobo Aragunde Pérez [mailto:jaragunde at]
>> Sent: Donnerstag, 30. März 2017 12:02
>> To: Friedrich, Eugen (ADITG/SW1); genivi-ivi-layer-
>> management at
>> Cc: genivi-projects at
>> Subject: Re: Usage of ivi_input interface
>> Thanks Eugen,
>> After reading those docs, I understand there is no way to "subscribe" to
>> changes in input acceptance; my application should ask through the ILM
>> API every time I need that information. Is this correct?
>> Best,
>> --
>> Jacobo Aragunde
>> Software Engineer at Igalia
>> On 29/03/17 13:12, Friedrich, Eugen (ADITG/SW1) wrote:
>>> Hello Jacobo,
>>> Please refer to the
>> ew+Input+Handling+APIs
>>> some of the content is outdated (e.g. mentioned version of ilm libraries)
>> but it should give the overview
>>> Best regards
>>> Eugen Friedrich
>>> Software Group I (ADITG/SW1)
>>> Tel. +49 5121 49 6921
>>>> -----Original Message-----
>>>> From: genivi-ivi-layer-management [mailto:genivi-ivi-layer-management-
>>>> bounces at] On Behalf Of Jacobo Aragunde Pérez
>>>> Sent: Mittwoch, 29. März 2017 11:53
>>>> To: genivi-ivi-layer-management at
>>>> Cc: genivi-projects at
>>>> Subject: Usage of ivi_input interface
>>>> Hi,
>>>> I've been checking the Wayland API for the seat object [1],
>>>> unfortunately there is not a lot that can be done with it. I can use it
>>>> to build a "map" of the available seats and the input devices they
>>>> provide, but there is no way to limit input for surfaces to a certain seat.
>>>> More interestingly, the ivi-input interface provided by
>>>> wayland-ivi-extensions [2] can do that assignment between surfaces and
>>>> seats. I haven't found a way to register to the input_acceptance event
>>>> specified by this interface, though, and that's exactly what I need.
>>>> Has any of you used it before? Do you have examples or any code
>> pointers?
>>>> Thanks in advance!
>>>> [1]
>>>> wl_seat
>>>> [2]
>>>> extension/blob/master/protocol/ivi-input.xml
>>>> --
>>>> Jacobo Aragunde
>>>> Software Engineer at Igalia
>>>> _______________________________________________
>>>> genivi-ivi-layer-management mailing list
>>>> genivi-ivi-layer-management at

More information about the genivi-projects mailing list