yoz pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=fba185798cf75eaeaba4a95d2be25fb2fea6ef1a
commit fba185798cf75eaeaba4a95d2be25fb2fea6ef1a Author: Michaƫl Bouchaud (yoz) <y...@efl.so> Date: Mon Oct 31 14:36:23 2016 +0100 Revert "mixer: do not set back the value from emix once the drag is finished" This reverts commit 8724313b8e4c9799c5d20b876d5aaa9e5341d519. --- src/modules/mixer/e_mod_main.c | 11 +++++++++++ src/modules/mixer/emixer.c | 13 +++++++++++++ 2 files changed, 24 insertions(+) diff --git a/src/modules/mixer/e_mod_main.c b/src/modules/mixer/e_mod_main.c index 42fc20b..d10bfb6 100644 --- a/src/modules/mixer/e_mod_main.c +++ b/src/modules/mixer/e_mod_main.c @@ -481,6 +481,16 @@ _slider_changed_cb(void *data EINA_UNUSED, Evas_Object *obj, } static void +_slider_drag_stop_cb(void *data EINA_UNUSED, Evas_Object *obj, + void *event EINA_UNUSED) +{ + EINA_SAFETY_ON_NULL_RETURN(mixer_context->sink_default); + Emix_Sink *s = (Emix_Sink *)mixer_context->sink_default; + int val = s->volume.volumes[0]; + elm_slider_value_set(obj, val); +} + +static void _sink_selected_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Emix_Sink *s = data; @@ -544,6 +554,7 @@ _popup_new(Instance *inst) evas_object_show(slider); elm_slider_min_max_set(slider, 0.0, emix_max_volume_get()); evas_object_smart_callback_add(slider, "changed", _slider_changed_cb, NULL); + evas_object_smart_callback_add(slider, "slider,drag,stop", _slider_drag_stop_cb, NULL); elm_slider_value_set(slider, volume); elm_box_pack_end(bx, slider); evas_object_show(slider); diff --git a/src/modules/mixer/emixer.c b/src/modules/mixer/emixer.c index 1bcd96c..5cde881 100644 --- a/src/modules/mixer/emixer.c +++ b/src/modules/mixer/emixer.c @@ -49,6 +49,17 @@ _cb_sink_volume_change(void *data, } static void +_cb_sink_volume_drag_stop(void *data, + Evas_Object *obj, + void *event EINA_UNUSED) +{ + Evas_Object *bxv = data; + Emix_Sink *sink = evas_object_data_get(bxv, "sink"); + int vol = sink->volume.volumes[0]; + elm_slider_value_set(obj, vol); +} + +static void _cb_sink_mute_change(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) @@ -123,6 +134,8 @@ _emix_sink_add(Emix_Sink *sink) elm_box_pack_end(bx, sl); evas_object_show(sl); evas_object_smart_callback_add(sl, "changed", _cb_sink_volume_change, bxv); + evas_object_smart_callback_add(sl, "slider,drag,stop", + _cb_sink_volume_drag_stop, bxv); ck = elm_check_add(win); evas_object_data_set(bxv, "mute", ck); --