e_comp_wl: update pointer's position when mouse_in 25/297925/1
authorduna.oh <duna.oh@samsung.com>
Mon, 28 Aug 2023 23:41:14 +0000 (08:41 +0900)
committerTizen Window System <tizen.windowsystem@gmail.com>
Tue, 29 Aug 2023 00:41:38 +0000 (09:41 +0900)
Mouse_In events are sent before Mouse_Move events.
This commit is to update pointer's position(ptr.x/y) when Mouse_In cb.

There was a bug that E20 decided whether pointer's position is inside
of a client(or region) in Mouse_In cb and it failed since position is not
updated yet in Mouse_In cb.

Change-Id: I63136fcb83a32e599bacc6a74b3efd8540a6d8bb

src/bin/e_comp_wl.c

index 77042e675d181bc33aa0328893ff2bc37ca11985..f06f7707f55d71a8855c0589d99bc9e5d0212629 100644 (file)
@@ -1223,6 +1223,10 @@ _e_comp_wl_evas_cb_mouse_in(void *data, Evas *evas EINA_UNUSED, Evas_Object *obj
    uint32_t serial;
 
    ev = event;
+
+   e_comp_wl->ptr.x = wl_fixed_from_int(ev->canvas.x);
+   e_comp_wl->ptr.y = wl_fixed_from_int(ev->canvas.y);
+
    if (!(ec = data)) return;
    if (e_object_is_del(E_OBJECT(ec))) return;
    struct wl_resource *surface = e_comp_wl_client_surface_get(ec);