diff options
Diffstat (limited to 'debian/patches/03_tp_glib.patch')
-rw-r--r-- | debian/patches/03_tp_glib.patch | 119 |
1 files changed, 119 insertions, 0 deletions
diff --git a/debian/patches/03_tp_glib.patch b/debian/patches/03_tp_glib.patch new file mode 100644 index 0000000..82e35ae --- /dev/null +++ b/debian/patches/03_tp_glib.patch @@ -0,0 +1,119 @@ +=== modified file 'configure.ac' +--- configure.ac 2009-12-08 13:36:06 +0000 ++++ configure.ac 2009-12-08 13:40:34 +0000 +@@ -37,10 +37,10 @@ + AC_SUBST(APPLET_LIBS) + + DBUSMENUGLIB_REQUIRED_VERSION=0.1.1 +-LIBEMPATHY_REQUIRED_VERSION=2.27.0 ++TELEPATHYGLIB_REQUIRED_VERSION=0.9.0 + + PKG_CHECK_MODULES(STATUSSERVICE, dbusmenu-glib >= $DBUSMENUGLIB_REQUIRED_VERSION +- libempathy >= $LIBEMPATHY_REQUIRED_VERSION) ++ telepathy-glib >= $TELEPATHYGLIB_REQUIRED_VERSION) + + AC_SUBST(STATUSERVICE_CFLAGS) + AC_SUBST(STATUSERVICE_LIBS) + +=== modified file 'src/status-provider-mc5.c' +--- src/status-provider-mc5.c 2009-12-08 13:38:42 +0000 ++++ src/status-provider-mc5.c 2009-12-08 16:01:06 +0000 +@@ -24,7 +24,7 @@ + #include "config.h" + #endif + +-#include "libempathy/empathy-account-manager.h" ++#include <telepathy-glib/account-manager.h> + + #include "status-provider.h" + #include "status-provider-mc5.h" +@@ -65,7 +65,7 @@ + + typedef struct _StatusProviderMC5Private StatusProviderMC5Private; + struct _StatusProviderMC5Private { +- EmpathyAccountManager * manager; ++ TpAccountManager * manager; + StatusProviderStatus status; + DBusGProxy * dbus_proxy; + }; +@@ -83,7 +83,7 @@ + /* Internal Funcs */ + static void set_status (StatusProvider * sp, StatusProviderStatus status); + static StatusProviderStatus get_status (StatusProvider * sp); +-static void presence_changed (EmpathyAccountManager * eam, guint type, const gchar * type_str, const gchar * message, StatusProviderMC5 * sp); ++static void presence_changed (TpAccountManager * eam, guint type, const gchar * type_str, const gchar * message, StatusProviderMC5 * sp); + static void dbus_namechange (DBusGProxy * proxy, const gchar * name, const gchar * prev, const gchar * new, StatusProviderMC5 * self); + static void mc5_exists_cb (DBusGProxy * proxy, gboolean exists, GError * error, gpointer userdata); + +@@ -109,25 +109,41 @@ + return; + } + +-/* Build our empathy account manager instance if we don't ++/* Build our telepathy account manager instance if we don't + have one. */ + static void + build_eam (StatusProviderMC5 * self) + { + StatusProviderMC5Private * priv = STATUS_PROVIDER_MC5_GET_PRIVATE(self); ++ static TpDBusDaemon *daemon = NULL; ++ GError *error = NULL; + + if (priv->manager != NULL) { + return; + } +- +- priv->manager = EMPATHY_ACCOUNT_MANAGER(g_object_new(EMPATHY_TYPE_ACCOUNT_MANAGER, NULL)); +- g_signal_connect(G_OBJECT(priv->manager), "global-presence-changed", G_CALLBACK(presence_changed), self); ++ /* the daemon is used to communicate via DBus */ ++ daemon = tp_dbus_daemon_dup(&error); ++ ++ if (daemon == NULL) ++ { ++ g_debug("Cannot create DBus daemon: %s\n", error->message); ++ g_error_free(error); ++ return; ++ } ++ ++ priv->manager = TP_ACCOUNT_MANAGER (g_object_new (TP_TYPE_ACCOUNT_MANAGER, ++ "dbus-daemon", daemon, ++ "dbus-connection", ((TpProxy *) daemon)->dbus_connection, ++ "bus-name", "org.freedesktop.Telepathy.MissionControl5", ++ "object-path", "/org/freedesktop/Telepathy/AccountManager", ++ NULL)); ++ g_signal_connect(G_OBJECT(priv->manager), "most-available-presence-changed", G_CALLBACK(presence_changed), self); + + return; + } + + /* Creating an instance of the status provider. We set the variables +- and create an EmpathyAccountManager object. It does all the hard ++ and create an TpAccountManager object. It does all the hard + work in this module of tracking MissionControl and enumerating the + accounts and all that jazz. */ + static void +@@ -266,8 +282,7 @@ + StatusProviderMC5Private * priv = STATUS_PROVIDER_MC5_GET_PRIVATE(sp); + + build_eam(STATUS_PROVIDER_MC5(sp)); +- +- empathy_account_manager_request_global_presence(priv->manager, sp_to_tp_map[status], sp_to_mc_map[status], ""); ++ tp_account_manager_set_all_requested_presences(priv->manager, sp_to_tp_map[status], sp_to_mc_map[status], ""); + + return; + } +@@ -287,11 +302,11 @@ + return priv->status; + } + +-/* A signal handler for when the EmpatyAccountManager believes ++/* A signal handler for when the TpAccountManager believes + that the global status has changed. It roughly calculates this + by finding the most available of all accounts that are active. */ + static void +-presence_changed (EmpathyAccountManager * eam, guint type, const gchar * type_str, const gchar * message, StatusProviderMC5 * sp) ++presence_changed (TpAccountManager * eam, guint type, const gchar * type_str, const gchar * message, StatusProviderMC5 * sp) + { + StatusProviderMC5Private * priv = STATUS_PROVIDER_MC5_GET_PRIVATE(sp); + + |