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 *child;
|
||||||
E_Client_Volume_Sink *sink;
|
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)
|
for (child = ec->stack.next; child; child = child->stack.next)
|
||||||
e_client_act_close_begin(child);
|
e_client_act_close_begin(child);
|
||||||
ec->changed = 0;
|
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->clients = eina_list_remove(e_comp->clients, ec);
|
||||||
e_comp_object_render_update_del(ec->frame);
|
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
|
static void
|
||||||
_disconnected(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;
|
if (mixer_context) mixer_context->sink_default = NULL;
|
||||||
_mixer_gadget_update();
|
_mixer_gadget_update();
|
||||||
}
|
}
|
||||||
|
|
|
@ -712,6 +712,12 @@ _sink_event(int type, void *info)
|
||||||
static void
|
static void
|
||||||
_disconnected(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;
|
if (gmixer_context) gmixer_context->sink_default = NULL;
|
||||||
_mixer_gadget_update();
|
_mixer_gadget_update();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue