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
This commit is contained in:
Mike Blumenkrantz 2013-08-28 12:13:39 +01:00
parent 5737103d67
commit dcdf4bb9f9
2 changed files with 8 additions and 7 deletions

View File

@ -611,6 +611,10 @@ 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_FREE_FUNC(p->pointer_image, evas_object_del);
return;
}
_e_pointer_hot_update(p, hot_x, hot_y);

View File

@ -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();