diff --git a/config/default/e.src b/config/default/e.src index a49cd9939..ab2a2ef06 100644 --- a/config/default/e.src +++ b/config/default/e.src @@ -1,5 +1,5 @@ group "E_Config" struct { - value "config_version" int: 65828; + value "config_version" int: 65829; value "show_splash" int: 1; value "init_default_theme" string: "default.edj"; value "desktop_default_name" string: "Desktop %i, %i"; @@ -1901,6 +1901,7 @@ group "E_Config" struct { value "clientlist_warp_to_iconified_desktop" int: 0; value "clientlist_limit_caption_len" int: 0; value "clientlist_max_caption_len" int: 2; + value "mouse_hand" int: 1; value "mouse_accel_numerator" int: 2; value "mouse_accel_denominator" int: 1; value "mouse_accel_threshold" int: 4; diff --git a/src/bin/e_config.c b/src/bin/e_config.c index 8f472aefe..7d44a5770 100644 --- a/src/bin/e_config.c +++ b/src/bin/e_config.c @@ -570,6 +570,7 @@ e_config_init(void) E_CONFIG_VAL(D, T, clientlist_limit_caption_len, INT); E_CONFIG_VAL(D, T, clientlist_max_caption_len, INT); + E_CONFIG_VAL(D, T, mouse_hand, INT); E_CONFIG_VAL(D, T, mouse_accel_numerator, INT); E_CONFIG_VAL(D, T, mouse_accel_denominator, INT); E_CONFIG_VAL(D, T, mouse_accel_threshold, INT); @@ -1531,6 +1532,10 @@ e_config_init(void) e_config->thumbscroll_friction = 1.0; IFCFGEND; + IFCFG(0x0125); + e_config->mouse_hand = E_MOUSE_HAND_RIGHT; + IFCFGEND; + e_config->config_version = E_CONFIG_FILE_VERSION; #if 0 /* example of new config */ @@ -1653,6 +1658,7 @@ e_config_init(void) E_CONFIG_LIMIT(e_config->clientlist_sort_by, 0, 3); E_CONFIG_LIMIT(e_config->clientlist_separate_iconified_apps, 0, 2); E_CONFIG_LIMIT(e_config->clientlist_warp_to_iconified_desktop, 0, 1); + E_CONFIG_LIMIT(e_config->mouse_hand, 0, 1); E_CONFIG_LIMIT(e_config->clientlist_limit_caption_len, 0, 1); E_CONFIG_LIMIT(e_config->clientlist_max_caption_len, 2, E_CLIENTLIST_MAX_CAPTION_LEN); diff --git a/src/bin/e_config.h b/src/bin/e_config.h index 683b65054..ca5733e9e 100644 --- a/src/bin/e_config.h +++ b/src/bin/e_config.h @@ -33,7 +33,7 @@ typedef struct _E_Event_Config_Icon_Theme E_Event_Config_Icon_Theme; /* increment this whenever a new set of config values are added but the users * config doesn't need to be wiped - simply new values need to be put in */ -#define E_CONFIG_FILE_GENERATION 0x0124 +#define E_CONFIG_FILE_GENERATION 0x0125 #define E_CONFIG_FILE_VERSION ((E_CONFIG_FILE_EPOCH << 16) | E_CONFIG_FILE_GENERATION) #define E_EVAS_ENGINE_DEFAULT 0 @@ -243,6 +243,7 @@ struct _E_Config int clientlist_limit_caption_len; // GUI int clientlist_max_caption_len; // GUI + int mouse_hand; //GUI int mouse_accel_numerator; // GUI int mouse_accel_denominator; // GUI int mouse_accel_threshold; // GUI diff --git a/src/bin/e_main.c b/src/bin/e_main.c index 058f5f376..ee02e7acd 100644 --- a/src/bin/e_main.c +++ b/src/bin/e_main.c @@ -858,7 +858,7 @@ main(int argc, char **argv) /* setup mouse accel */ if (!e_mouse_init()) { - e_error_message_show(_("Enlightenment cannot configure the mouse acceleration settings.")); + e_error_message_show(_("Enlightenment cannot configure the mouse settings.")); _e_main_shutdown(-1); } diff --git a/src/bin/e_mouse.c b/src/bin/e_mouse.c index a10e157b7..42f0fa35f 100644 --- a/src/bin/e_mouse.c +++ b/src/bin/e_mouse.c @@ -6,10 +6,23 @@ EAPI int e_mouse_init(void) { + unsigned char map[256]; + int n; + if (!ecore_x_pointer_control_set(e_config->mouse_accel_numerator, - e_config->mouse_accel_denominator, - e_config->mouse_accel_threshold)) - return 0; - + e_config->mouse_accel_denominator, + e_config->mouse_accel_threshold)) + return 0; + + if (!(n = ecore_x_pointer_mapping_get(map, 256))) return 0; + + if (((e_config->mouse_hand == E_MOUSE_HAND_LEFT) && (map[2] != 1)) || + ((e_config->mouse_hand == E_MOUSE_HAND_RIGHT) && (map[0] != 1))) + { + const unsigned char tmp = map[0]; + map[0] = map[2]; map[2] = tmp; + if (ecore_x_pointer_mapping_set(map, n)) return 0; + } + return 1; } diff --git a/src/bin/e_mouse.h b/src/bin/e_mouse.h index a6ae9194b..c3b8b93b9 100644 --- a/src/bin/e_mouse.h +++ b/src/bin/e_mouse.h @@ -1,4 +1,11 @@ #ifdef E_TYPEDEFS + +typedef enum _E_Mouse_Hand +{ + E_MOUSE_HAND_LEFT, + E_MOUSE_HAND_RIGHT +} E_Mouse_Hand; + #else #ifndef E_MOUSE_H #define E_MOUSE_H diff --git a/src/modules/conf_mouse/e_int_config_mouse.c b/src/modules/conf_mouse/e_int_config_mouse.c index 555588890..a2ce7fd4c 100644 --- a/src/modules/conf_mouse/e_int_config_mouse.c +++ b/src/modules/conf_mouse/e_int_config_mouse.c @@ -10,6 +10,7 @@ struct _E_Config_Dialog_Data { E_Config_Dialog *cfd; + int mouse_hand; double numerator; double denominator; double threshold; @@ -32,7 +33,7 @@ e_int_config_mouse(E_Container *con, const char *params __UNUSED__) v->basic.create_widgets = _basic_create_widgets; v->override_auto_apply = 1; - cfd = e_config_dialog_new(con, _("Mouse Acceleration Settings"), "E", + cfd = e_config_dialog_new(con, _("Mouse Settings"), "E", "_config_mouse_dialog", "enlightenment/mouse_clean", 0, v, NULL); return cfd; @@ -41,6 +42,7 @@ e_int_config_mouse(E_Container *con, const char *params __UNUSED__) static void _fill_data(E_Config_Dialog_Data *cfdata) { + cfdata->mouse_hand = e_config->mouse_hand; cfdata->numerator = e_config->mouse_accel_numerator; cfdata->denominator = e_config->mouse_accel_denominator; cfdata->threshold = e_config->mouse_accel_threshold; @@ -70,6 +72,8 @@ _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) { + e_config->mouse_hand = cfdata->mouse_hand; + e_config->mouse_accel_numerator = cfdata->numerator; /* Force denominator to 1 for simplicity. */ e_config->mouse_accel_denominator = 1; @@ -86,8 +90,18 @@ static Evas_Object * _basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata) { Evas_Object *o, *of, *ob; + E_Radio_Group *rg; + o = e_widget_list_add(evas, 0, 0); + of = e_widget_frametable_add(evas, _("Mouse Hand"), 0); + rg = e_widget_radio_group_new(&(cfdata->mouse_hand)); + ob = e_widget_radio_icon_add(evas, NULL, "enlightenment/mouse_right", 48, 48, E_MOUSE_HAND_LEFT, rg); + e_widget_frametable_object_append(of, ob, 0, 0, 1, 1, 1, 1, 1, 1); + ob = e_widget_radio_icon_add(evas, NULL, "enlightenment/mouse_left", 48, 48, E_MOUSE_HAND_RIGHT, rg); + e_widget_frametable_object_append(of, ob, 1, 0, 1, 1, 1, 1, 1, 1); + e_widget_list_object_append(o, of, 1, 1, 0.5); + of = e_widget_framelist_add(evas, _("Mouse Acceleration"), 0); ob = e_widget_label_add(evas, _("Acceleration")); diff --git a/src/modules/conf_mouse/e_mod_main.c b/src/modules/conf_mouse/e_mod_main.c index 06140d1c1..56682a4f2 100644 --- a/src/modules/conf_mouse/e_mod_main.c +++ b/src/modules/conf_mouse/e_mod_main.c @@ -25,14 +25,14 @@ static E_Module *conf_module = NULL; EAPI E_Module_Api e_modapi = { E_MODULE_API_VERSION, - "Configuration - Mouse Acceleration" + "Configuration - Mouse Settings" }; EAPI void * e_modapi_init(E_Module *m) { e_configure_registry_category_add("keyboard_and_mouse", 40, _("Keyboard & Mouse"), NULL, "enlightenment/behavior"); - e_configure_registry_item_add("keyboard_and_mouse/mouse_acceleration", 30, _("Mouse Acceleration"), NULL, "enlightenment/mouse_clean", e_int_config_mouse); + e_configure_registry_item_add("keyboard_and_mouse/mouse_settings", 30, _("Mouse Settings"), NULL, "enlightenment/mouse_clean", e_int_config_mouse); conf_module = m; e_module_delayed_set(m, 1); return m; diff --git a/src/modules/conf_mouse/module.desktop.in b/src/modules/conf_mouse/module.desktop.in index c9fcaf06e..1f8135179 100644 --- a/src/modules/conf_mouse/module.desktop.in +++ b/src/modules/conf_mouse/module.desktop.in @@ -1,10 +1,10 @@ [Desktop Entry] Type=Link -Name=Configuration - Mouse Acceleration +Name=Configuration - Mouse Settings Name[de]= Name[eo]=Agordo - Musa plirapidigo Name[es]=Configuración - Aceleración del mouse -Name[fr]= +Name[fr]=Configuration - Paramètres de la souris Name[hu]=Beállítások - Egér sebessége Name[it]=Configurazione - Accelerazione mouse Name[ja]= @@ -13,11 +13,11 @@ Name[pt_BR]= Name[zh_CN]= Name[zh_TW]= Icon=e-module-conf_mouse -Comment=E17 Configuration Applet
Configure mouse cursor acceleration. +Comment=E17 Configuration Applet
Configure mouse behavior. Comment[de]= Comment[eo]=Aplikaĵeto de E17 agordo
Agordi la musan plirapidigon. Comment[es]=Applet de configuración de E17
Configure la aceleración del cursor del mouse. -Comment[fr]= +Comment[fr]=Applet de configuration de E17

Permet de configurer les paramètres du curseur de la souris. Comment[hu]=E17 beállító alkalmazás
Egér kurzor sebességének beállítása. Comment[it]=Applet configurazione di E17
Configura l'accelerazione del puntatore del mouse. Comment[ja]=