diff options
Diffstat (limited to 'packages/e17/e-wm')
-rw-r--r-- | packages/e17/e-wm/disable-e-cursor.patch | 277 |
1 files changed, 277 insertions, 0 deletions
diff --git a/packages/e17/e-wm/disable-e-cursor.patch b/packages/e17/e-wm/disable-e-cursor.patch new file mode 100644 index 0000000000..51618434a5 --- /dev/null +++ b/packages/e17/e-wm/disable-e-cursor.patch @@ -0,0 +1,277 @@ +Index: e/src/bin/e_config.c +=================================================================== +--- e.orig/src/bin/e_config.c ++++ e/src/bin/e_config.c +@@ -461,6 +461,7 @@ e_config_init(void) + E_CONFIG_VAL(D, T, focus_last_focused_per_desktop, INT); /**/ + E_CONFIG_VAL(D, T, focus_revert_on_hide_or_close, INT); /**/ + E_CONFIG_VAL(D, T, pointer_slide, INT); /**/ ++ E_CONFIG_VAL(D, T, show_cursor, INT); /**/ + E_CONFIG_VAL(D, T, use_e_cursor, INT); /**/ + E_CONFIG_VAL(D, T, cursor_size, INT); /**/ + E_CONFIG_VAL(D, T, menu_autoscroll_margin, INT); /**/ +@@ -705,6 +706,7 @@ e_config_init(void) + e_config->focus_last_focused_per_desktop = 1; + e_config->focus_revert_on_hide_or_close = 1; + e_config->pointer_slide = 1; ++ e_config->show_cursor = 1; + e_config->use_e_cursor = 1; + e_config->cursor_size = 32; + e_config->menu_autoscroll_margin = 0; +@@ -1570,6 +1572,7 @@ e_config_init(void) + E_CONFIG_LIMIT(e_config->focus_last_focused_per_desktop, 0, 1); + E_CONFIG_LIMIT(e_config->focus_revert_on_hide_or_close, 0, 1); + E_CONFIG_LIMIT(e_config->pointer_slide, 0, 1); ++ E_CONFIG_LIMIT(e_config->show_cursor, 0, 1); + E_CONFIG_LIMIT(e_config->use_e_cursor, 0, 1); + E_CONFIG_LIMIT(e_config->cursor_size, 0, 1024); + E_CONFIG_LIMIT(e_config->menu_autoscroll_margin, 0, 50); +Index: e/src/modules/conf_mouse_cursor/e_int_config_cursor.c +=================================================================== +--- e.orig/src/modules/conf_mouse_cursor/e_int_config_cursor.c ++++ e/src/modules/conf_mouse_cursor/e_int_config_cursor.c +@@ -3,16 +3,25 @@ + static void *_create_data(E_Config_Dialog *cfd); + static void _free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata); + static int _basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata); ++static void _basic_show_cursor_cb_change(void *data, Evas_Object *obj); + static Evas_Object *_basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata); + static int _advanced_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata); ++static void _advanced_show_cursor_cb_change(void *data, Evas_Object *obj); + static Evas_Object *_advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata); + + struct _E_Config_Dialog_Data + { ++ int show_cursor; + int use_e_cursor; + + /* Advanced */ + int cursor_size; ++ ++ struct ++ { ++ Evas_Object *radio_use_e_cursor; ++ Evas_Object *slider_cursor_size; ++ } gui; + }; + + EAPI E_Config_Dialog * +@@ -41,6 +50,7 @@ e_int_config_cursor(E_Container *con, co + static void + _fill_data(E_Config_Dialog_Data *cfdata) + { ++ cfdata->show_cursor = e_config->show_cursor; + cfdata->use_e_cursor = e_config->use_e_cursor; + cfdata->cursor_size = e_config->cursor_size; + } +@@ -66,9 +76,11 @@ _basic_apply_data(E_Config_Dialog *cfd, + { + int changed = 0; + ++ if (e_config->show_cursor != cfdata->show_cursor) changed = 1; + if (e_config->use_e_cursor != cfdata->use_e_cursor) changed = 1; + + e_config->use_e_cursor = cfdata->use_e_cursor; ++ e_config->show_cursor = cfdata->show_cursor; + e_config_save_queue(); + + if (changed) +@@ -79,6 +91,11 @@ _basic_apply_data(E_Config_Dialog *cfd, + { + E_Manager *man; + man = l->data; ++ if (man->pointer && !e_config->show_cursor) ++ { ++ e_pointer_hide(man->pointer); ++ continue; ++ } + if (man->pointer) e_object_del(E_OBJECT(man->pointer)); + man->pointer = e_pointer_window_new(man->root, 1); + } +@@ -86,6 +103,17 @@ _basic_apply_data(E_Config_Dialog *cfd, + return 1; + } + ++static void ++_basic_show_cursor_cb_change(void *data, Evas_Object *obj) ++{ ++ E_Config_Dialog_Data *cfdata; ++ ++ cfdata = data; ++ if (!cfdata) return; ++ ++ e_widget_disabled_set(cfdata->gui.radio_use_e_cursor, !cfdata->show_cursor); ++} ++ + static Evas_Object * + _basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata) + { +@@ -94,8 +122,14 @@ _basic_create_widgets(E_Config_Dialog *c + + o = e_widget_list_add(evas, 0, 0); + ++ ob = e_widget_check_add(evas, _("Show Cursor"), &(cfdata->show_cursor)); ++ e_widget_on_change_hook_set(ob, _basic_show_cursor_cb_change, cfdata); ++ e_widget_list_object_append(o, ob, 1, 1, 0.5); ++ + of = e_widget_framelist_add(evas, _("Cursor Settings"), 0); + rg = e_widget_radio_group_new(&cfdata->use_e_cursor); ++ cfdata->gui.radio_use_e_cursor = rg; ++ + ob = e_widget_radio_add(evas, _("Use Enlightenment Cursor"), 1, rg); + e_widget_framelist_object_append(of, ob); + ob = e_widget_radio_add(evas, _("Use X Cursor"), 0, rg); +@@ -111,9 +145,11 @@ _advanced_apply_data(E_Config_Dialog *cf + { + int changed = 0; + ++ if (e_config->show_cursor != cfdata->show_cursor) changed = 1; + if (e_config->use_e_cursor != cfdata->use_e_cursor) changed = 1; + if (e_config->cursor_size != cfdata->cursor_size) changed = 1; +- ++ ++ e_config->show_cursor = cfdata->show_cursor; + e_config->use_e_cursor = cfdata->use_e_cursor; + if (cfdata->cursor_size <= 0) cfdata->cursor_size = 1; + e_config->cursor_size = cfdata->cursor_size; +@@ -128,6 +164,11 @@ _advanced_apply_data(E_Config_Dialog *cf + { + E_Manager *man; + man = l->data; ++ if (man->pointer && !e_config->show_cursor) ++ { ++ e_pointer_hide(man->pointer); ++ continue; ++ } + if (man->pointer) e_object_del(E_OBJECT(man->pointer)); + man->pointer = e_pointer_window_new(man->root, 1); + } +@@ -135,6 +176,18 @@ _advanced_apply_data(E_Config_Dialog *cf + return 1; + } + ++static void ++_advanced_show_cursor_cb_change(void *data, Evas_Object *obj) ++{ ++ E_Config_Dialog_Data *cfdata; ++ ++ cfdata = data; ++ if (!cfdata) return; ++ ++ e_widget_disabled_set(cfdata->gui.radio_use_e_cursor, !cfdata->show_cursor); ++ e_widget_disabled_set(cfdata->gui.slider_cursor_size, !cfdata->show_cursor); ++} ++ + static Evas_Object * + _advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata) + { +@@ -143,16 +196,27 @@ _advanced_create_widgets(E_Config_Dialog + + o = e_widget_list_add(evas, 0, 0); + ++ ob = e_widget_check_add(evas, _("Show Cursor"), &(cfdata->show_cursor)); ++ e_widget_on_change_hook_set(ob, _advanced_show_cursor_cb_change, cfdata); ++ e_widget_list_object_append(o, ob, 1, 1, 0.5); ++ + of = e_widget_framelist_add(evas, _("Cursor Settings"), 0); + rg = e_widget_radio_group_new(&cfdata->use_e_cursor); ++ cfdata->gui.radio_use_e_cursor = rg; ++ + ob = e_widget_radio_add(evas, _("Use Enlightenment Cursor"), 1, rg); + e_widget_framelist_object_append(of, ob); + ob = e_widget_radio_add(evas, _("Use X Cursor"), 0, rg); + e_widget_framelist_object_append(of, ob); + ob = e_widget_label_add(evas, _("Cursor Size")); + e_widget_framelist_object_append(of, ob); ++ + ob = e_widget_slider_add(evas, 1, 0, _("%1.0f pixels"), 8, 128, 4, 0, NULL, &(cfdata->cursor_size), 150); ++ cfdata->gui.slider_cursor_size = ob; ++ + e_widget_framelist_object_append(of, ob); ++ + e_widget_list_object_append(o, of, 1, 1, 0.5); ++ + return o; + } +Index: e/src/bin/e_pointer.c +=================================================================== +--- e.orig/src/bin/e_pointer.c ++++ e/src/bin/e_pointer.c +@@ -94,6 +94,8 @@ e_pointers_size_set(int size) + { + Evas_List *l; + ++ if (!e_config->show_cursor) return; ++ + for (l = _e_pointers; l; l = l->next) + { + E_Pointer *p; +@@ -136,6 +138,13 @@ e_pointers_size_set(int size) + } + + EAPI void ++e_pointer_hide(E_Pointer *p) ++{ ++ if (p->win) ecore_x_window_cursor_set(p->win, 0); ++ if (p->evas) _e_pointer_canvas_del(p); ++} ++ ++EAPI void + e_pointer_type_push(E_Pointer *p, void *obj, const char *type) + { + E_Pointer_Stack *stack; +@@ -199,6 +208,7 @@ EAPI void + e_pointer_idler_before(void) + { + Evas_List *l; ++ if (!e_config->show_cursor) return; + + for (l = _e_pointers; l; l = l->next) + { +@@ -305,6 +315,8 @@ _e_pointer_cb_move(void *data, Evas *e _ + E_Pointer *p; + Evas_Coord x, y; + ++ if (!e_config->show_cursor) return; ++ + p = data; + if (!p->e_cursor) return; + evas_object_geometry_get(p->hot_object, &x, &y, NULL, NULL); +@@ -353,6 +365,13 @@ _e_pointer_type_set(E_Pointer *p, const + if (p->type) evas_stringshare_del(p->type); + p->type = evas_stringshare_add(type); + ++ /* Do not set type if in "hidden mode" */ ++ if (!e_config->show_cursor) ++ { ++ ecore_x_window_cursor_set(p->win, 0); ++ return 1; ++ } ++ + if (p->e_cursor) + { + Evas_Object *o; +Index: e/src/bin/e_config.h +=================================================================== +--- e.orig/src/bin/e_config.h ++++ e/src/bin/e_config.h +@@ -166,6 +166,7 @@ struct _E_Config + int focus_last_focused_per_desktop; // GUI + int focus_revert_on_hide_or_close; // GUI + int pointer_slide; // GUI ++ int show_cursor; // GUI + int use_e_cursor; // GUI + int cursor_size; // GUI + int menu_autoscroll_margin; // GUI +Index: e/src/bin/e_pointer.h +=================================================================== +--- e.orig/src/bin/e_pointer.h ++++ e/src/bin/e_pointer.h +@@ -42,6 +42,7 @@ struct _E_Pointer + EAPI int e_pointer_init(void); + EAPI int e_pointer_shutdown(void); + EAPI E_Pointer *e_pointer_window_new(Ecore_X_Window win, int filled); ++EAPI void e_pointer_hide(E_Pointer *p); + EAPI void e_pointer_type_push(E_Pointer *p, void *obj, const char *type); + EAPI void e_pointer_type_pop(E_Pointer *p, void *obj, const char *type); + EAPI void e_pointers_size_set(int size); |