raster pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=9da3c339ba86cf80d3c19507945a019a6c6a99ca
commit 9da3c339ba86cf80d3c19507945a019a6c6a99ca Author: Carsten Haitzler (Rasterman) <ras...@rasterman.com> Date: Tue Dec 10 18:48:20 2013 +0900 mixer - address duplicate bindings for the same action with timeout use time logging to not allow actions within a small window of time from eachother. this fixes T620 - or should. --- src/modules/mixer/e_mod_main.c | 10 ++++++++++ src/modules/mixer/e_mod_main.h | 1 + 2 files changed, 11 insertions(+) diff --git a/src/modules/mixer/e_mod_main.c b/src/modules/mixer/e_mod_main.c index 4f1cd05..4869958 100644 --- a/src/modules/mixer/e_mod_main.c +++ b/src/modules/mixer/e_mod_main.c @@ -1098,6 +1098,11 @@ _mixer_cb_volume_modify(Eina_Bool up) if (!ctxt->default_instance) return; + if ((ecore_loop_time_get() - ctxt->last_act_time) < 0.04) + return; + + ctxt->last_act_time = ecore_loop_time_get(); + if (ctxt->default_instance->conf->keybindings_popup) _mixer_popup_timer_new(ctxt->default_instance); _mixer_volume_change(ctxt->default_instance, up, EINA_TRUE); @@ -1130,6 +1135,11 @@ _mixer_cb_volume_mute(E_Object *obj __UNUSED__, const char *params __UNUSED__) if (!ctxt->default_instance) return; + if ((ecore_loop_time_get() - ctxt->last_act_time) < 0.1) + return; + + ctxt->last_act_time = ecore_loop_time_get(); + if (ctxt->default_instance->conf->keybindings_popup) _mixer_popup_timer_new(ctxt->default_instance); _mixer_toggle_mute(ctxt->default_instance, EINA_TRUE); diff --git a/src/modules/mixer/e_mod_main.h b/src/modules/mixer/e_mod_main.h index 6594680..d92633c 100644 --- a/src/modules/mixer/e_mod_main.h +++ b/src/modules/mixer/e_mod_main.h @@ -69,6 +69,7 @@ typedef struct E_Mixer_Module_Context E_Mixer_Instance *default_instance; Eina_List *instances; E_Dialog *mixer_dialog; + double last_act_time; struct st_mixer_actions { E_Action *incr; --