discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=863a50acbb4423713725822411fd9c43d100c557
commit 863a50acbb4423713725822411fd9c43d100c557 Author: Mike Blumenkrantz <zm...@osg.samsung.com> Date: Thu Mar 3 10:30:23 2016 -0500 bump config version, add mouse/wheel bindings for manipulating gadgets/bryces this copies the user's current bindings for moving/resizing/menu on a window and applies them to gadget-related objects for UX coherency --- src/bin/e_config.c | 81 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/bin/e_config.h | 2 +- 2 files changed, 82 insertions(+), 1 deletion(-) diff --git a/src/bin/e_config.c b/src/bin/e_config.c index eb0c013..2181fda 100644 --- a/src/bin/e_config.c +++ b/src/bin/e_config.c @@ -65,6 +65,37 @@ typedef struct _E_Color_Class int r3, g3, b3, a3; } E_Color_Class; +static void +_e_config_binding_mouse_add(E_Binding_Context ctxt, int button, E_Binding_Modifier mod, int any_mod, const char *action, const char *params) +{ + E_Config_Binding_Mouse *binding; + + binding = calloc(1, sizeof(E_Config_Binding_Mouse)); + binding->context = ctxt; + binding->button = button; + binding->modifiers = mod; + binding->any_mod = any_mod; + binding->action = eina_stringshare_add(action); + binding->params = eina_stringshare_add(params); + e_bindings->mouse_bindings = eina_list_append(e_bindings->mouse_bindings, binding); +} + +static void +_e_config_binding_wheel_add(E_Binding_Context ctxt, int direction, int z, E_Binding_Modifier mod, int any_mod, const char *action, const char *params) +{ + E_Config_Binding_Wheel *binding; + + binding = calloc(1, sizeof(E_Config_Binding_Wheel)); + binding->context = ctxt; + binding->direction = direction; + binding->z = z; + binding->modifiers = mod; + binding->any_mod = any_mod; + binding->action = eina_stringshare_add(action); + binding->params = eina_stringshare_add(params); + e_bindings->wheel_bindings = eina_list_append(e_bindings->wheel_bindings, binding); +} + static Eina_Bool _e_config_cb_efreet_cache_update(void *data EINA_UNUSED, int type EINA_UNUSED, void *ev EINA_UNUSED) { @@ -1351,6 +1382,56 @@ e_config_load(void) e_config->keyboard.repeat_delay = 400; e_config->keyboard.repeat_rate = 25; } + CONFIG_VERSION_CHECK(20) + { + Eina_List *l; + E_Config_Binding_Mouse *ebm; + E_Config_Module *em, *module; + + CONFIG_VERSION_UPDATE_INFO(20); + + EINA_LIST_FOREACH(e_bindings->mouse_bindings, l, ebm) + { + if (eina_streq(ebm->action, "window_move")) + { + _e_config_binding_mouse_add(E_BINDING_CONTEXT_ANY, ebm->button, ebm->modifiers, + ebm->any_mod, "gadget_move", NULL); + } + else if (eina_streq(ebm->action, "window_resize")) + { + _e_config_binding_mouse_add(E_BINDING_CONTEXT_ANY, ebm->button, ebm->modifiers, + ebm->any_mod, "gadget_resize", NULL); + } + else if (eina_streq(ebm->action, "window_menu")) + { + _e_config_binding_mouse_add(E_BINDING_CONTEXT_ANY, ebm->button, ebm->modifiers, + ebm->any_mod, "gadget_menu", NULL); + _e_config_binding_mouse_add(E_BINDING_CONTEXT_ANY, ebm->button, ebm->modifiers, + ebm->any_mod, "bryce_menu", NULL); + } + } + _e_config_binding_wheel_add(E_BINDING_CONTEXT_ANY, 0, 1, E_BINDING_MODIFIER_CTRL, 0, "bryce_resize", NULL); + _e_config_binding_wheel_add(E_BINDING_CONTEXT_ANY, 0, -1, E_BINDING_MODIFIER_CTRL, 0, "bryce_resize", NULL); + + EINA_LIST_FOREACH(e_config->modules, l, em) + { + if (!em->enabled) continue; + if (eina_streq(em->name, "connman")) + { + module = E_NEW(E_Config_Module, 1); + module->name = eina_stringshare_add("wireless"); + module->enabled = 1; + e_config->modules = eina_list_append(e_config->modules, module); + } + else if (eina_streq(em->name, "clock")) + { + module = E_NEW(E_Config_Module, 1); + module->name = eina_stringshare_add("time"); + module->enabled = 1; + e_config->modules = eina_list_append(e_config->modules, module); + } + } + } } if (!e_config->remember_internal_fm_windows) e_config->remember_internal_fm_windows = !!(e_config->remember_internal_windows & E_REMEMBER_INTERNAL_FM_WINS); diff --git a/src/bin/e_config.h b/src/bin/e_config.h index cc0967c..c2069de 100644 --- a/src/bin/e_config.h +++ b/src/bin/e_config.h @@ -46,7 +46,7 @@ typedef enum /* 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 19 +#define E_CONFIG_FILE_GENERATION 20 #define E_CONFIG_FILE_VERSION ((E_CONFIG_FILE_EPOCH * 1000000) + E_CONFIG_FILE_GENERATION) #define E_CONFIG_BINDINGS_VERSION 0 // DO NOT INCREMENT UNLESS YOU WANT TO WIPE ALL BINDINGS!!!!! --