discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=28ff2091592fa63adbb90137fdd4b37fca868200

commit 28ff2091592fa63adbb90137fdd4b37fca868200
Author: Mike Blumenkrantz <zm...@osg.samsung.com>
Date:   Mon Oct 9 07:09:16 2017 -0400

    recreate x11 root pointer when changing application<->enlightenment theme
    
    force new visual to be applied immediately instead of requiring a compositor
    restart
---
 src/modules/conf_interaction/e_int_config_mouse.c | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/src/modules/conf_interaction/e_int_config_mouse.c 
b/src/modules/conf_interaction/e_int_config_mouse.c
index 9050fe0e4..79a287cd6 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();
 

-- 


Reply via email to