]> git.0d.be Git - empathy.git/commitdiff
Initialise the chatroom manager from empathy itself
authorSjoerd Simons <sjoerd.simons@collabora.co.uk>
Fri, 9 Jan 2009 16:15:21 +0000 (16:15 +0000)
committerXavier Claessens <xclaesse@src.gnome.org>
Fri, 9 Jan 2009 16:15:21 +0000 (16:15 +0000)
Signed-off-by: Sjoerd Simons <sjoerd.simons@collabora.co.uk>
svn path=/trunk/; revision=2186

libempathy/empathy-dispatcher.c
src/empathy.c

index f004db0cb8c22b581fdc7052c6a0ce4145be7ae7..0d67336c78e98de7ee65a5ff89bd6ddbc1fcc1a3 100644 (file)
@@ -57,7 +57,6 @@ typedef struct {
   GHashTable     *accounts;
   gpointer       token;
   GSList         *tubes;
-  EmpathyChatroomManager *chatroom_mgr;
 } EmpathyDispatcherPriv;
 
 G_DEFINE_TYPE (EmpathyDispatcher, empathy_dispatcher, G_TYPE_OBJECT);
@@ -820,9 +819,8 @@ dispatcher_finalize (GObject *object)
   g_object_unref (priv->account_manager);
   g_object_unref (priv->mc);
 
+  g_hash_table_destroy (priv->accounts);
   g_hash_table_destroy (priv->connections);
-
-  g_object_unref (priv->chatroom_mgr);
 }
 
 static void
@@ -896,10 +894,6 @@ empathy_dispatcher_init (EmpathyDispatcher *dispatcher)
     g_object_unref (l->data);
   }
   g_list_free (accounts);
-
-  /* FIXME thisshould probably be created by another object.. */
-  priv->chatroom_mgr = empathy_chatroom_manager_dup_singleton (NULL);
-  empathy_chatroom_manager_observe (priv->chatroom_mgr, dispatcher);
 }
 
 EmpathyDispatcher *
index 441242e57b0ece251a6955c0a46c6af9a6870649..5da2b25296fc66674c9b4fa9a963b4c1eae6dc8c 100644 (file)
@@ -39,6 +39,7 @@
 
 #include <libempathy/empathy-idle.h>
 #include <libempathy/empathy-utils.h>
+#include <libempathy/empathy-chatroom-manager.h>
 #include <libempathy/empathy-dispatcher.h>
 #include <libempathy/empathy-dispatch-operation.h>
 #include <libempathy/empathy-tp-chat.h>
@@ -390,6 +391,7 @@ main (int argc, char *argv[])
        guint32            startup_timestamp;
        EmpathyStatusIcon *icon;
        EmpathyDispatcher *dispatcher;
+       EmpathyChatroomManager *chatroom_manager;
        GtkWidget         *window;
        MissionControl    *mc;
        EmpathyIdle       *idle;
@@ -516,6 +518,9 @@ main (int argc, char *argv[])
        dispatcher = empathy_dispatcher_dup_singleton ();
        g_signal_connect (dispatcher, "dispatch", G_CALLBACK (dispatch_cb), NULL);
 
+       chatroom_manager = empathy_chatroom_manager_dup_singleton (NULL);
+       empathy_chatroom_manager_observe (chatroom_manager, dispatcher);
+
        gtk_main ();
 
        empathy_idle_set_state (idle, MC_PRESENCE_OFFLINE);
@@ -524,6 +529,7 @@ main (int argc, char *argv[])
        g_object_unref (idle);
        g_object_unref (icon);
        g_object_unref (dispatcher);
+       g_object_unref (chatroom_manager);
 
        return EXIT_SUCCESS;
 }