Hi,

On Fri, Dec 2, 2016 at 8:54 AM, Bruno Dilly <bdi...@profusion.mobi> wrote:
> now that multiseat is supported up to Evas, we’re working on Edje.

Yeah \o/

> The idea is that a developer would be able to implement an UI that
> may be used by more than one single seat, properly handling focus,
> and providing different feedback for different seats action.
>
> Let’s say, different colors on focus, different images when different
> seat pointers are over, etc.
>
> I’ve done an initial implementation and wrote an example. It’s available
> on my branch devs/bdilly/edje_multiseat . There you’ll be able to find
> edje_multiseat example (C code + EDC).
>
> To make this possible, a few main changes were done:
>   *  New signals were added, adding the seat as suffix. So “mouse,in” would
> be still be emitted, but also “mouse,in,seat1”, for example
>   * Real Parts now may be focused by multiple seats
>   * Some actions receive an optional seat parameter. For instance,
> FOCUS_SET may receive the seat name, or it will consider it's about the
> default seat.
>    * Since Evas seat devices may have arbitrary names (at least using
> wayland backend you can name them as you want using udev rules), or set
> them on programmatic ways, Edje will have custom names for seats, following
> a well established pattern. So first announced seat will be named “seat1”,
> the second “seat2”... If an application supports three seats, on EDC you
> know what signals you should expect. It makes it possible to write general
> applications (in the sense of not knowing exactly seats beforehand). But
> let’s say it’s not the case. there is a specific product built in a way
> that they know exactly which seats are supported and configured their
> names, or want to check if this seat has pointer, keyboard, or whatever…
> for this cases, Edje also emits signals saying when devices were added (or
> removed) and their names. With these names you can use a new Edje function
> to fetch the Evas device named as “seat1”.

I think it would be better to actually emit both a "event,seat1" and a
"event,seat_named". It will be easier to use from theme where named
seat have been customized and won't cost much more I think.

Something that seems out of the proposal is text cursor. I think we
want to be able to assign a seat per Edje_Cursor so that we have
multiple people able to mess with an entry, but I know that Tom and
Daniel have been working on redefining the API there. So I am not sure
about what needs to be done in that context. Maybe they can share
there thinking on the topic.

Another case, that I think we want to handle somehow is specific drag
per seat. If you look at edje_callback.c, you will see that we need to
handle seat in that context too. I would guess we want to set some
kind of filter via both API and theme. Do you have an opinion on that
bit already ?

Also if we are to do a theme in elementary that support multi seat, I
would expect to be able to disable a widget for a specific seat in the
C code. Wouldn't it make sense ? So in which case, wouldn't an API to
disable listening for an entire seat make sense also on edje ? Or do
you have an idea on how to implement that doesn't require this ?
-- 
Cedric BAIL

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most 
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to