diff --git a/src/modules/mixer/emixer.c b/src/modules/mixer/emixer.c index 576a87786..e1a89987c 100644 --- a/src/modules/mixer/emixer.c +++ b/src/modules/mixer/emixer.c @@ -569,7 +569,7 @@ _emix_sink_input_volume_fill(Emix_Sink_Input *input, Evas_Object *bxv, Evas_Obje static void _emix_sink_input_add(Emix_Sink_Input *input) { - Evas_Object *bxv, *bx, *lb, *hv, *sep; + Evas_Object *bxv, *bx, *lb, *hv, *sep, *ic; const Eina_List *l; Emix_Sink *sink; Eina_Bool locked = EINA_TRUE; @@ -584,10 +584,18 @@ _emix_sink_input_add(Emix_Sink_Input *input) bx = elm_box_add(win); elm_box_horizontal_set(bx, EINA_TRUE); evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, 0.0); - evas_object_size_hint_align_set(bx, EVAS_HINT_FILL, 0.5); + evas_object_size_hint_align_set(bx, EVAS_HINT_FILL, 0.0); elm_box_pack_end(bxv, bx); evas_object_show(bx); + ic = elm_icon_add(win); + elm_icon_standard_set(ic, input->icon); + evas_object_size_hint_weight_set(ic, 0.0, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(ic, 0.0, EVAS_HINT_FILL); + evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1); + elm_box_pack_end(bx, ic); + evas_object_show(ic); + lb = elm_label_add(win); elm_object_text_set(lb, input->name); evas_object_size_hint_weight_set(lb, EVAS_HINT_EXPAND, 0.0); diff --git a/src/modules/mixer/lib/backends/pulseaudio/pulse.c b/src/modules/mixer/lib/backends/pulseaudio/pulse.c index 2e10c4e70..fc5b17346 100644 --- a/src/modules/mixer/lib/backends/pulseaudio/pulse.c +++ b/src/modules/mixer/lib/backends/pulseaudio/pulse.c @@ -40,7 +40,6 @@ typedef struct _Sink typedef struct _Sink_Input { Emix_Sink_Input base; - const char *icon; int idx; } Sink_Input; @@ -129,7 +128,7 @@ _sink_input_del(Sink_Input *input) eina_stringshare_del(input->base.volume.channel_names[i]); free(input->base.volume.channel_names); eina_stringshare_del(input->base.name); - eina_stringshare_del(input->icon); + eina_stringshare_del(input->base.icon); free(input); } @@ -411,7 +410,7 @@ _sink_input_cb(pa_context *c EINA_UNUSED, const pa_sink_input_info *info, if (s->idx == (int)info->sink) input->base.sink = (Emix_Sink *)s; } - input->icon = eina_stringshare_add(_icon_from_properties(info->proplist)); + input->base.icon = eina_stringshare_add(_icon_from_properties(info->proplist)); ctx->inputs = eina_list_append(ctx->inputs, input); if ((t = pa_proplist_gets(info->proplist, PA_PROP_APPLICATION_PROCESS_ID))) diff --git a/src/modules/mixer/lib/emix.h b/src/modules/mixer/lib/emix.h index 6725a96c7..6b1e67094 100644 --- a/src/modules/mixer/lib/emix.h +++ b/src/modules/mixer/lib/emix.h @@ -71,6 +71,7 @@ typedef struct _Emix_Sink_Input { Eina_Bool mute; Emix_Sink *sink; pid_t pid; + const char *icon; } Emix_Sink_Input; typedef struct _Emix_Source {