evas: Fix mouse events in inlined windows
authorJean-Philippe Andre <jp.andre@samsung.com>
Thu, 15 Jun 2017 11:26:54 +0000 (20:26 +0900)
committerJean-Philippe Andre <jp.andre@samsung.com>
Thu, 15 Jun 2017 11:30:25 +0000 (20:30 +0900)
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

index ea3e5da..1e3452e 100644 (file)
@@ -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;