From 755327f92c236649161141426f56fd8de725bc9c Mon Sep 17 00:00:00 2001 From: Duna Oh Date: Tue, 20 Sep 2016 15:05:08 +0900 Subject: [PATCH] e_comp_wl_input: when gets set_cursor, should calls e_pointer_object_set() should set ec->visible as true and etc. only when e_pixmap is usable update evas_object geometry when mapped. Signed-off-by: Duna Oh Change-Id: I43b98e389669dedcbaeb11e3e313c37c42b2bcfd --- src/bin/e_comp_wl_input.c | 10 +++------- src/bin/e_pointer.c | 3 ++- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/src/bin/e_comp_wl_input.c b/src/bin/e_comp_wl_input.c index 0b982fd..b362871 100644 --- a/src/bin/e_comp_wl_input.c +++ b/src/bin/e_comp_wl_input.c @@ -30,11 +30,13 @@ static void _e_comp_wl_input_pointer_map(struct wl_resource *resource) { E_Client *ec; + E_Pointer *ptr; if (!(ec = wl_resource_get_user_data(resource))) return; if (e_object_is_del(E_OBJECT(ec))) return; - e_pointer_object_set(e_comp->pointer, ec->frame, 0, 0); + if ((ptr = e_comp->pointer)) + e_pointer_object_set(ptr, ec->frame, ptr->hot.x, ptr->hot.y); } static void @@ -61,7 +63,6 @@ _e_comp_wl_input_pointer_cb_cursor_set(struct wl_client *client, struct wl_resou { E_Client *ec; Eina_Bool got_mouse = EINA_FALSE; - int cursor_w = 0, cursor_h = 0; E_CLIENT_FOREACH(ec) { @@ -105,11 +106,6 @@ _e_comp_wl_input_pointer_cb_cursor_set(struct wl_client *client, struct wl_resou /* ignore cursor changes during resize/move I guess */ if (e_client_action_get()) return; - - evas_object_geometry_get(ec->frame, NULL, NULL, &cursor_w, &cursor_h); - if ((cursor_w == 0) || (cursor_h == 0)) - return; - e_pointer_object_set(e_comp->pointer, ec->frame, x, y); } diff --git a/src/bin/e_pointer.c b/src/bin/e_pointer.c index d06b1c8..f54884e 100644 --- a/src/bin/e_pointer.c +++ b/src/bin/e_pointer.c @@ -237,10 +237,11 @@ e_pointer_object_set(E_Pointer *ptr, Evas_Object *obj, int x, int y) if (obj) { ec = e_comp_object_client_get(obj); - if (ec) + if (ec && e_pixmap_usable_get(ec->pixmap)) { ec->hidden = 0; ec->visible = EINA_TRUE; + evas_object_geometry_set(ec->frame, ec->x, ec->y, ec->w, ec->h); ec->comp_data->mapped = EINA_TRUE; ec->override = 0; /* do not ignore the cursor_ec to set the image object */ } -- 2.7.4