diff options
author | Sjoerd Simons <sjoerd@luon.net> | 2009-02-22 19:30:32 +0100 |
---|---|---|
committer | Sebastian Dröge <sebastian.droege@collabora.co.uk> | 2009-02-22 19:30:32 +0100 |
commit | ef33cf891f7a9f97f178169adb87aa3695bf9b2b (patch) | |
tree | bf7246e0577a48969e97ca239e93f0dba26b8e7b /ext/gconf/gstgconfvideosink.c | |
parent | a7c2b1354310b3c0fa81dc1d164fffca9c573c67 (diff) |
gconfvideo(src|sink): Disconnect GConf notifications
Fixes bug #571321.
Diffstat (limited to 'ext/gconf/gstgconfvideosink.c')
-rw-r--r-- | ext/gconf/gstgconfvideosink.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/ext/gconf/gstgconfvideosink.c b/ext/gconf/gstgconfvideosink.c index 4090cc91..1b05fd37 100644 --- a/ext/gconf/gstgconfvideosink.c +++ b/ext/gconf/gstgconfvideosink.c @@ -122,7 +122,7 @@ gst_gconf_video_sink_init (GstGConfVideoSink * sink, sink->client = gconf_client_get_default (); gconf_client_add_dir (sink->client, GST_GCONF_DIR, GCONF_CLIENT_PRELOAD_RECURSIVE, NULL); - gconf_client_notify_add (sink->client, + sink->notify_id = gconf_client_notify_add (sink->client, GST_GCONF_DIR "/" GST_GCONF_VIDEOSINK_KEY, cb_toggle_element, sink, NULL, NULL); } @@ -133,6 +133,9 @@ gst_gconf_video_sink_dispose (GObject * object) GstGConfVideoSink *sink = GST_GCONF_VIDEO_SINK (object); if (sink->client) { + if (sink->notify_id != 0) + gconf_client_notify_remove (sink->client, sink->notify_id); + g_object_unref (G_OBJECT (sink->client)); sink->client = NULL; } |