On 15 June 2017 at 22:08, Mike Blumenkrantz <[email protected]> wrote:
> I considered making this change, but I'm not sure it's viable to keep this > unless we are agreeing to never send pointer devices with events; this > change breaks all assumptions which could be made by current users of the > device api since it will result in "random" devices being used if multiple > pointers exist for a seat. > Indeed. And this brings us back to T5515. For this specific change I could have first looked for the pointer and then the seat. Maybe a seat could have a primary pointer, so that one would be used if we don't have a specific pointer info. But this would still not be a perfect solution. The problem is that the info about the original device is lost when going from ecore_evas to evas and back to ecore_evas_buffer. Honestly I'm not sure what we should do. > > On Thu, Jun 15, 2017 at 7:31 AM Jean-Philippe ANDRÉ <[email protected]> > wrote: > > > jpeg pushed a commit to branch master. > > > > > > http://git.enlightenment.org/core/efl.git/commit/?id= > 1af62db8f8e80b58864320cc47c53e0d19bd73d2 > > > > commit 1af62db8f8e80b58864320cc47c53e0d19bd73d2 > > Author: Jean-Philippe Andre <[email protected]> > > Date: Thu Jun 15 20:26:54 2017 +0900 > > > > evas: Fix mouse events in inlined windows > > > > There is a mismatch between seat & pointer. > > See @zmike's comments in T5515. Having both seat and pointer > > devices as different devices leads to these kinds of issues. > > Really annoying. > > > > Ref T5515 > > --- > > src/lib/evas/canvas/evas_main.c | 7 ++++--- > > 1 file changed, 4 insertions(+), 3 deletions(-) > > > > diff --git a/src/lib/evas/canvas/evas_main.c > > b/src/lib/evas/canvas/evas_main.c > > index ea3e5daa4e..1e3452e892 100644 > > --- a/src/lib/evas/canvas/evas_main.c > > +++ b/src/lib/evas/canvas/evas_main.c > > @@ -1132,13 +1132,14 @@ _evas_pointer_data_by_device_ > get(Evas_Public_Data > > *edata, Efl_Input_Device *poin > > { > > Eina_List *l; > > Evas_Pointer_Data *pdata; > > + Efl_Input_Device *seat = NULL; > > > > - if (!pointer) > > - pointer = edata->default_mouse; > > + if (pointer) seat = efl_input_device_seat_get(pointer); > > + if (!seat) seat = edata->default_seat; > > > > EINA_LIST_FOREACH(edata->pointers, l, pdata) > > { > > - if (pdata->pointer == pointer) > > + if (pdata->seat->seat == seat) > > return pdata; > > } > > return NULL; > > > > -- > > > > > > > ------------------------------------------------------------ > ------------------ > 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 > [email protected] > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > -- Jean-Philippe André ------------------------------------------------------------------------------ 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 [email protected] https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
