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
This commit is contained in:
Jean-Philippe Andre 2017-06-15 20:26:54 +09:00
parent a1141d8378
commit 1af62db8f8
1 changed files with 4 additions and 3 deletions

View File

@ -1132,13 +1132,14 @@ _evas_pointer_data_by_device_get(Evas_Public_Data *edata, Efl_Input_Device *poin
{ {
Eina_List *l; Eina_List *l;
Evas_Pointer_Data *pdata; Evas_Pointer_Data *pdata;
Efl_Input_Device *seat = NULL;
if (!pointer) if (pointer) seat = efl_input_device_seat_get(pointer);
pointer = edata->default_mouse; if (!seat) seat = edata->default_seat;
EINA_LIST_FOREACH(edata->pointers, l, pdata) EINA_LIST_FOREACH(edata->pointers, l, pdata)
{ {
if (pdata->pointer == pointer) if (pdata->seat->seat == seat)
return pdata; return pdata;
} }
return NULL; return NULL;