unset DISPLAY during mixer's pulse backend startup

fixes more xwayland deadlocks
This commit is contained in:
Mike Blumenkrantz 2016-05-06 13:40:03 -04:00
parent a4a6ac0537
commit aef99290d0
2 changed files with 18 additions and 1 deletions

View File

@ -25,7 +25,7 @@ src_modules_mixer_emixerdir = $(mixerpkgdir)
bin_PROGRAMS += src/modules/mixer/emixer
src_modules_mixer_emixer_SOURCES = src/modules/mixer/emixer.c \
$(emixerlib)
src_modules_mixer_emixer_CPPFLAGS = $(MOD_CPPFLAGS) @e_cflags@ -I$(top_srcdir)/src/modules/mixer/lib
src_modules_mixer_emixer_CPPFLAGS = $(MOD_CPPFLAGS) -I$(top_srcdir)/src/modules/mixer/lib -DEMIXER_BUILD
src_modules_mixer_emixer_LDADD = $(MOD_LIBS) @PULSE_LIBS@ @ALSA_LIBS@
src_modules_mixer_module_la_CPPFLAGS = $(MOD_CPPFLAGS) @e_cflags@ @ALSA_CFLAGS@ @PULSE_CFLAGS@ -I$(top_srcdir)/src/modules/mixer/lib

View File

@ -781,6 +781,16 @@ _pulse_connect(void *data)
pa_proplist_sets(proplist, PA_PROP_APPLICATION_ID,
"org.enlightenment.volumecontrol");
pa_proplist_sets(proplist, PA_PROP_APPLICATION_ICON_NAME, "audio-card");
#if !defined(EMIXER_BUILD) && defined(HAVE_WAYLAND) && !defined(HAVE_WAYLAND_ONLY)
char *display;
if (e_comp->comp_type != E_PIXMAP_TYPE_X)
{
display = getenv("DISPLAY");
if (display) display = strdup(display);
e_env_unset("DISPLAY");
}
#endif
c->context = pa_context_new_with_proplist(&(c->api), NULL, proplist);
if (!c->context)
{
@ -794,6 +804,13 @@ _pulse_connect(void *data)
WRN("Could not connect to pulse");
goto err;
}
#if !defined(EMIXER_BUILD) && defined(HAVE_WAYLAND) && !defined(HAVE_WAYLAND_ONLY)
if (e_comp->comp_type != E_PIXMAP_TYPE_X)
{
e_env_set("DISPLAY", display);
free(display);
}
#endif
pa_proplist_free(proplist);
return ECORE_CALLBACK_DONE;