From 1af62db8f8e80b58864320cc47c53e0d19bd73d2 Mon Sep 17 00:00:00 2001 From: Jean-Philippe Andre Date: Thu, 15 Jun 2017 20:26:54 +0900 Subject: [PATCH] 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 ea3e5da..1e3452e 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; -- 2.7.4