diff options
-rw-r--r-- | libempathy/empathy-dispatcher.c | 3 | ||||
-rw-r--r-- | libempathy/empathy-handler.c | 11 |
2 files changed, 14 insertions, 0 deletions
diff --git a/libempathy/empathy-dispatcher.c b/libempathy/empathy-dispatcher.c index 7aec41438..fca24daeb 100644 --- a/libempathy/empathy-dispatcher.c +++ b/libempathy/empathy-dispatcher.c @@ -890,6 +890,9 @@ dispatcher_constructor (GType type, priv = GET_PRIV (dispatcher); + if (priv->handler == NULL) + priv->handler = empathy_handler_new (NULL, NULL, NULL); + empathy_handler_set_handle_channels_func (priv->handler, empathy_dispatcher_handle_channels, dispatcher); diff --git a/libempathy/empathy-handler.c b/libempathy/empathy-handler.c index 649903058..9a597889e 100644 --- a/libempathy/empathy-handler.c +++ b/libempathy/empathy-handler.c @@ -141,12 +141,23 @@ handler_set_property (GObject *object, { case PROP_CHANNEL_FILTER: priv->filters = g_value_dup_boxed (value); + if (priv->filters == NULL) + priv->filters = g_ptr_array_new (); break; case PROP_CAPABILITIES: priv->capabilities = g_value_dup_boxed (value); break; case PROP_NAME: priv->name = g_value_dup_string (value); + if (EMP_STR_EMPTY (priv->name)) + { + TpDBusDaemon *bus; + + bus = tp_dbus_daemon_dup (NULL); + priv->name = g_strdup_printf ("%s%p", + tp_dbus_daemon_get_unique_name (bus), object); + g_object_unref (bus); + } break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); |