On Fri, Dec 2, 2016 at 8:19 PM, Cedric BAIL <cedric.b...@free.fr> wrote: > 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.
we did think a lot about it and it doesn't make sense, actually for *theme* the only plausible solution is the sequential numbers. OTOH, some *app* may want to persist or associate the actual seat the with something else, like some username,credentials for a game... then we offer the api to see the actual device "seat1" is. Believe, me for theme if you get "button,1,xpto" in ".edc" you cannot figure out what is "xpto" or do anything about it, programs don't get their trigger names, for example :-) > 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. Indeed it's not in the scope and text editing is a big bitch on its own. Tom and Daniel can now get the events and test. If they can't understand or miss something, they can ping us. > 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 ? drag per seat was planned, like drag parts... used in scrollers. > 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 ? It's doable as it's just early check & return... BUT I wonder how someone would use it... -- Gustavo Sverzut Barbieri -------------------------------------- Mobile: +55 (16) 99354-9890 ------------------------------------------------------------------------------ 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