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);

-- 


Reply via email to