summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Blumenkrantz <zmike@osg.samsung.com>2017-10-09 07:09:16 -0400
committerMike Blumenkrantz <zmike@osg.samsung.com>2017-10-12 10:47:28 -0400
commit716ab4b43f1eac2df3a6152e0be9e2a6f478855c (patch)
treecc7f16bebf292e9fa27ab61bed59399ab862faf2
parent6b0b742acee67f82d82b1a9f4e7eeedf47a1459a (diff)
downloadenlightenment-716ab4b43f1eac2df3a6152e0be9e2a6f478855c.tar.gz
recreate x11 root pointer when changing application<->enlightenment theme
force new visual to be applied immediately instead of requiring a compositor restart
-rw-r--r--src/modules/conf_interaction/e_int_config_mouse.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/modules/conf_interaction/e_int_config_mouse.c b/src/modules/conf_interaction/e_int_config_mouse.c
index beaf30ca58..c3792870d9 100644
--- a/src/modules/conf_interaction/e_int_config_mouse.c
+++ b/src/modules/conf_interaction/e_int_config_mouse.c
@@ -98,6 +98,7 @@ _free_data(E_Config_Dialog *cfd EINA_UNUSED, E_Config_Dialog_Data *cfdata)
static int
_basic_apply_data(E_Config_Dialog *cfd EINA_UNUSED, E_Config_Dialog_Data *cfdata)
{
+ Eina_Bool redo = e_config->use_e_cursor != cfdata->use_e_cursor;
e_config->use_e_cursor = cfdata->use_e_cursor;
e_config->show_cursor = cfdata->show_cursor;
e_config->idle_cursor = cfdata->idle_cursor;
@@ -113,7 +114,15 @@ _basic_apply_data(E_Config_Dialog *cfd EINA_UNUSED, E_Config_Dialog_Data *cfdata
if ((e_comp->comp_type == E_PIXMAP_TYPE_X) && (!e_config->show_cursor))
e_pointer_hide(e_comp->pointer);
else
- e_pointers_size_set(e_config->cursor_size);
+ {
+ if (redo && (e_comp->comp_type == E_PIXMAP_TYPE_X))
+ {
+ E_FREE_FUNC(e_comp->pointer, e_object_del);
+ e_comp->pointer = e_pointer_window_new(e_comp->root, 1);
+ }
+ else
+ e_pointers_size_set(e_config->cursor_size);
+ }
e_mouse_update();