aboutsummaryrefslogtreecommitdiff
path: root/src/im-menu-item.c
diff options
context:
space:
mode:
authorTed Gould <ted@canonical.com>2009-04-07 21:51:37 -0500
committerTed Gould <ted@canonical.com>2009-04-07 21:51:37 -0500
commitfd8d087eb9d3c45a6fe54cb3ecde05f8ce333b81 (patch)
treea54a6f27de6666dfeddae85a081a2904f9f20c5e /src/im-menu-item.c
parentc04ffad1771f5d498b1f307ee9499659fe79a0ec (diff)
parenta4d47b2561f84ab6ace9cd6ba5c17f15ca22ba41 (diff)
downloadayatana-indicator-messages-fd8d087eb9d3c45a6fe54cb3ecde05f8ce333b81.tar.gz
ayatana-indicator-messages-fd8d087eb9d3c45a6fe54cb3ecde05f8ce333b81.tar.bz2
ayatana-indicator-messages-fd8d087eb9d3c45a6fe54cb3ecde05f8ce333b81.zip
* Fixing bugs, much better.
* Making the menu item lie like it's FUSA
Diffstat (limited to 'src/im-menu-item.c')
-rw-r--r--src/im-menu-item.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/im-menu-item.c b/src/im-menu-item.c
index 737c609..6e3a461 100644
--- a/src/im-menu-item.c
+++ b/src/im-menu-item.c
@@ -44,6 +44,7 @@ struct _ImMenuItemPrivate
glong seconds;
gboolean show_time;
+ gulong indicator_changed;
guint time_update_min;
@@ -171,6 +172,11 @@ im_menu_item_dispose (GObject *object)
if (priv->time_update_min != 0) {
g_source_remove(priv->time_update_min);
}
+
+ g_signal_handler_disconnect(priv->listener, priv->indicator_changed);
+ priv->indicator_changed = 0;
+
+ return;
}
static void
@@ -326,7 +332,7 @@ indicator_modified_cb (IndicateListener * listener, IndicateListenerServer * ser
/* Not meant for us */
if (INDICATE_LISTENER_INDICATOR_ID(indicator) != INDICATE_LISTENER_INDICATOR_ID(priv->indicator)) return;
- if (g_strcmp0(INDICATE_LISTENER_SERVER_DBUS_NAME(server), INDICATE_LISTENER_SERVER_DBUS_NAME(priv->server))) return;
+ if (server != priv->server) return;
if (!g_strcmp0(property, "sender")) {
indicate_listener_get_property(listener, server, indicator, "sender", sender_cb, self);
@@ -358,7 +364,7 @@ im_menu_item_new (IndicateListener * listener, IndicateListenerServer * server,
indicate_listener_get_property_icon(listener, server, indicator, "icon", icon_cb, self);
g_signal_connect(G_OBJECT(self), "activate", G_CALLBACK(activate_cb), NULL);
- g_signal_connect(G_OBJECT(listener), INDICATE_LISTENER_SIGNAL_INDICATOR_MODIFIED, G_CALLBACK(indicator_modified_cb), self);
+ priv->indicator_changed = g_signal_connect(G_OBJECT(listener), INDICATE_LISTENER_SIGNAL_INDICATOR_MODIFIED, G_CALLBACK(indicator_modified_cb), self);
return self;
}