forked from enlightenment/enlightenment
e mixer - handle pulse exit/disconnect and not keep e client sinks
we keps e client sinks even if we were dicsonnected from pulse... this caused fun crashes. fix @fix
This commit is contained in:
parent
d196f25a2b
commit
da791a0bf5
|
@ -585,6 +585,8 @@ _e_client_del(E_Client *ec)
|
|||
E_Client *child;
|
||||
E_Client_Volume_Sink *sink;
|
||||
|
||||
EINA_LIST_FREE(ec->sinks, sink)
|
||||
e_client_volume_sink_remove(ec, sink);
|
||||
for (child = ec->stack.next; child; child = child->stack.next)
|
||||
e_client_act_close_begin(child);
|
||||
ec->changed = 0;
|
||||
|
@ -673,9 +675,6 @@ _e_client_del(E_Client *ec)
|
|||
|
||||
e_comp->clients = eina_list_remove(e_comp->clients, ec);
|
||||
e_comp_object_render_update_del(ec->frame);
|
||||
|
||||
EINA_LIST_FREE(ec->sinks, sink)
|
||||
sink->clients = eina_list_remove(sink->clients, ec);
|
||||
}
|
||||
|
||||
///////////////////////////////////////////
|
||||
|
|
|
@ -792,6 +792,12 @@ _sink_event(int type, void *info)
|
|||
static void
|
||||
_disconnected(void)
|
||||
{
|
||||
E_Client_Volume_Sink *sink;
|
||||
|
||||
EINA_LIST_FREE(_client_sinks, sink)
|
||||
{
|
||||
e_client_volume_sink_del(sink);
|
||||
}
|
||||
if (mixer_context) mixer_context->sink_default = NULL;
|
||||
_mixer_gadget_update();
|
||||
}
|
||||
|
|
|
@ -712,6 +712,12 @@ _sink_event(int type, void *info)
|
|||
static void
|
||||
_disconnected(void)
|
||||
{
|
||||
E_Client_Volume_Sink *sink;
|
||||
|
||||
EINA_LIST_FREE(_client_sinks, sink)
|
||||
{
|
||||
e_client_volume_sink_del(sink);
|
||||
}
|
||||
if (gmixer_context) gmixer_context->sink_default = NULL;
|
||||
_mixer_gadget_update();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue