From 099b25027506217edefef49486caddcde523b874 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Wed, 28 Aug 2013 12:13:39 +0100 Subject: [PATCH] don't delete pointers when changing settings, just update size this fixes a case where cursors would be permanently broken (along with the world) when changing cursor settings --- src/bin/e_pointer.c | 2 ++ src/modules/conf_interaction/e_int_config_mouse.c | 11 ++++------- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/src/bin/e_pointer.c b/src/bin/e_pointer.c index 5529c39b7..47c740961 100644 --- a/src/bin/e_pointer.c +++ b/src/bin/e_pointer.c @@ -611,6 +611,8 @@ e_pointer_image_set(E_Pointer *p, E_Pixmap *cp, int w, int h, int hot_x, int hot _e_pointer_type_set(p, type); eina_stringshare_del(type); } + evas_object_image_size_set(p->pointer_image, 1, 1); + evas_object_image_data_set(p->pointer_image, NULL); } _e_pointer_hot_update(p, hot_x, hot_y); diff --git a/src/modules/conf_interaction/e_int_config_mouse.c b/src/modules/conf_interaction/e_int_config_mouse.c index 702141491..fcd83d9b1 100644 --- a/src/modules/conf_interaction/e_int_config_mouse.c +++ b/src/modules/conf_interaction/e_int_config_mouse.c @@ -115,13 +115,10 @@ _basic_apply_data(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata) /* Apply the above settings */ EINA_LIST_FOREACH(e_comp_list(), l, comp) { - if (comp->pointer && !e_config->show_cursor) - { - e_pointer_hide(comp->pointer); - continue; - } - if (comp->pointer) e_object_del(E_OBJECT(comp->pointer)); - comp->pointer = e_pointer_window_new(comp->man->root, 1); + if ((comp->comp_type == E_PIXMAP_TYPE_X) && (!e_config->show_cursor)) + e_pointer_hide(comp->pointer); + else + e_pointers_size_set(e_config->cursor_size); } e_mouse_update();