From d4abb904add7890450a15912142409b55bc7cc5f Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Thu, 23 Jan 2014 17:05:34 -0500 Subject: [PATCH] fix cursor visibility when working with canvas cursors wayland cursors no longer override E cursors depending on config, and they also no longer randomly delete your cursor entirely T851 --- src/bin/e_pointer.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/bin/e_pointer.c b/src/bin/e_pointer.c index 88372c243..483c3c118 100644 --- a/src/bin/e_pointer.c +++ b/src/bin/e_pointer.c @@ -621,6 +621,8 @@ 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, 1, 1); evas_object_image_data_set(p->pointer_image, NULL); E_FREE_FUNC(p->pointer_image, evas_object_del); + p->blocks = 0; + _e_pointer_canvas_resize(p, e_config->cursor_size, e_config->cursor_size); return; } _e_pointer_hot_update(p, hot_x, hot_y); @@ -630,16 +632,26 @@ e_pointer_image_set(E_Pointer *p, E_Pixmap *cp, int w, int h, int hot_x, int hot /* e cursor: edje or image */ if (!p->canvas) _e_pointer_canvas_resize(p, w, h); - evas_object_hide(p->pointer_object); if (!p->pointer_image) { + if (!p->e_cursor) + p->blocks = 1; p->pointer_image = evas_object_image_filled_add(p->evas); evas_object_image_alpha_set(p->pointer_image, 1); } 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); - evas_object_show(p->pointer_image); + if (p->e_cursor) + { + evas_object_hide(p->pointer_image); + evas_object_show(p->pointer_object); + } + else + { + evas_object_hide(p->pointer_object); + evas_object_show(p->pointer_image); + } } #ifndef WAYLAND_ONLY else