summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichaël Bouchaud (yoz) <yoz@efl.so>2016-10-31 14:36:23 +0100
committerMichaël Bouchaud (yoz) <yoz@efl.so>2016-10-31 14:36:23 +0100
commitdabd1b9f4ad2b4f451856ce0ce5183de61de51a1 (patch)
tree0636a083009ce99b6adff01cbb41713add49c805
parent3a7dee7f8d844da88ab5260961c9e2294e650e2e (diff)
downloadenlightenment-devs/yoz/pulse.tar.gz
Revert "mixer: do not set back the value from emix once the drag is finished"devs/yoz/pulse
This reverts commit 8724313b8e4c9799c5d20b876d5aaa9e5341d519.
-rw-r--r--src/modules/mixer/e_mod_main.c11
-rw-r--r--src/modules/mixer/emixer.c13
2 files changed, 24 insertions, 0 deletions
diff --git a/src/modules/mixer/e_mod_main.c b/src/modules/mixer/e_mod_main.c
index 0ee12dc643..8941cdb571 100644
--- a/src/modules/mixer/e_mod_main.c
+++ b/src/modules/mixer/e_mod_main.c
@@ -479,6 +479,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;
@@ -542,6 +552,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 1bcd96c1f3..5cde881274 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);