From ecb8d21ab631e6bc92af14f3bcc3e4211e908b80 Mon Sep 17 00:00:00 2001 From: Gwanglim Lee Date: Thu, 24 Apr 2014 12:41:38 -0400 Subject: [PATCH] set blocks to avoid copying cursor contents from evas buffer canvas in idler_before Summary: it fixes a bug that cursor is invisible when running a wayland client. e_pointer_image_set function sets image data of p->pointer_image to data of E_Pixmap. and then e_pointer_idler_before function changes raw image data of p->pointer_image to p->pixels. we should enable blocks to avoid it. Test Plan: run enlightenment (wayland only) -> run efl app with wayland shm engine Reviewers: raster, devilhorns, zmike CC: cedric Differential Revision: https://phab.enlightenment.org/D769 --- src/bin/e_pointer.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/bin/e_pointer.c b/src/bin/e_pointer.c index a5904cfae..24e783f68 100644 --- a/src/bin/e_pointer.c +++ b/src/bin/e_pointer.c @@ -658,6 +658,10 @@ e_pointer_image_set(E_Pointer *p, E_Pixmap *cp, int w, int h, int hot_x, int hot evas_object_image_size_set(p->pointer_image, w, h); evas_object_image_data_set(p->pointer_image, img); evas_object_resize(p->pointer_image, w, h); + + /* to avoid copying contents from p->pixels in idler_before */ + p->blocks = 1; + if ((p->e_cursor) && (!p->canvas)) { evas_object_hide(p->pointer_image);