summaryrefslogtreecommitdiffstats
path: root/src/pulse
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2009-04-13 22:28:35 +0200
committerLennart Poettering <lennart@poettering.net>2009-04-13 22:28:35 +0200
commit0ac038e5913959910d854e9e015a9406c1976eca (patch)
treefce00bf05110ae63205c1aab9c3f91be2654d843 /src/pulse
parent0aed5ea2e109e0d4b2ffdbff5f3dc944eb34d7e8 (diff)
client-conf-x11: unbreak autospawn due to stale X11 properties
If the X11 property data is from the same session than the client the client may do autospawning in case the X11 property data is stale. Closes #518.
Diffstat (limited to 'src/pulse')
-rw-r--r--src/pulse/client-conf-x11.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/pulse/client-conf-x11.c b/src/pulse/client-conf-x11.c
index 3bec742f..4970363b 100644
--- a/src/pulse/client-conf-x11.c
+++ b/src/pulse/client-conf-x11.c
@@ -57,8 +57,23 @@ int pa_client_conf_from_x11(pa_client_conf *c, const char *dname) {
}
if (pa_x11_get_prop(d, "PULSE_SERVER", t, sizeof(t))) {
+ pa_bool_t disable_autospawn = TRUE;
+
pa_xfree(c->default_server);
c->default_server = pa_xstrdup(t);
+
+ if (pa_x11_get_prop(d, "PULSE_SESSION_ID", t, sizeof(t))) {
+ char *id;
+
+ if ((id = pa_session_id())) {
+ if (pa_streq(t, id))
+ disable_autospawn = FALSE;
+ pa_xfree(id);
+ }
+ }
+
+ if (disable_autospawn)
+ c->autospawn = FALSE;
}
if (pa_x11_get_prop(d, "PULSE_SINK", t, sizeof(t))) {