aboutsummaryrefslogtreecommitdiff
path: root/src/libappindicator/app-indicator.c
diff options
context:
space:
mode:
authorTed Gould <ted@gould.cx>2010-02-25 15:18:24 -0600
committerTed Gould <ted@gould.cx>2010-02-25 15:18:24 -0600
commit579c1e0778ec4783c07bda038d39164682ee3158 (patch)
treea62d60a27e79b4ad68b63fc457c319d174f4b577 /src/libappindicator/app-indicator.c
parent9d1ecc8139ae90a81f02e4529f5f42f73c30029a (diff)
parentbc5b940605bdcd6282f7eda735ef3d262101da79 (diff)
downloadayatana-indicator-application-579c1e0778ec4783c07bda038d39164682ee3158.tar.gz
ayatana-indicator-application-579c1e0778ec4783c07bda038d39164682ee3158.tar.bz2
ayatana-indicator-application-579c1e0778ec4783c07bda038d39164682ee3158.zip
Upstream release 0.0.14
∘ Fix mono bindings to include proper metadata (LP: #526620) ∘ Send connection changed signal when the proxy is created and destroyed (LP: #527082) ∘ Hide the fallback status icon before unrefing it. (LP: #526041) ∘ Increase dbus-glib version check to 0.82 ∘ Handle menu layout changes and visibility changes better. ∘ Improve testing stability ∘ Read menu sensitivity on startup. ∘ Handle null strings when evaluating whether we have an attention icon. ∘ Remove dbus objects when we fallback ∘ Disconnect client_menu_changed signal handlers on cleanup. ∘ Handle cases where the menu gets unset on updates. ∘ Fix custom labels on stock items. ∘ Adds support for submenus
Diffstat (limited to 'src/libappindicator/app-indicator.c')
-rw-r--r--src/libappindicator/app-indicator.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/libappindicator/app-indicator.c b/src/libappindicator/app-indicator.c
index 7c1ac82..1796e8e 100644
--- a/src/libappindicator/app-indicator.c
+++ b/src/libappindicator/app-indicator.c
@@ -387,6 +387,9 @@ app_indicator_dispose (GObject *object)
g_signal_handlers_disconnect_by_func(G_OBJECT(priv->watcher_proxy), watcher_proxy_destroyed, self);
g_object_unref(G_OBJECT(priv->watcher_proxy));
priv->watcher_proxy = NULL;
+
+ /* Emit the AppIndicator::connection-changed signal*/
+ g_signal_emit (self, signals[CONNECTION_CHANGED], 0, FALSE);
}
if (priv->connection != NULL) {
@@ -625,6 +628,9 @@ check_connect (AppIndicator *self)
org_freedesktop_StatusNotifierWatcher_register_status_notifier_item_async(priv->watcher_proxy, path, register_service_cb, self);
g_free(path);
+ /* Emit the AppIndicator::connection-changed signal*/
+ g_signal_emit (self, signals[CONNECTION_CHANGED], 0, TRUE);
+
return;
}
@@ -639,6 +645,10 @@ watcher_proxy_destroyed (GObject * object, gpointer data)
dbus_g_connection_unregister_g_object(self->priv->connection,
G_OBJECT(self));
self->priv->watcher_proxy = NULL;
+
+ /* Emit the AppIndicator::connection-changed signal*/
+ g_signal_emit (self, signals[CONNECTION_CHANGED], 0, FALSE);
+
start_fallback_timer(self, FALSE);
return;
}
@@ -885,6 +895,7 @@ unfallback (AppIndicator * self, GtkStatusIcon * status_icon)
{
g_signal_handlers_disconnect_by_func(G_OBJECT(self), status_icon_status_wrapper, status_icon);
g_signal_handlers_disconnect_by_func(G_OBJECT(self), status_icon_changes, status_icon);
+ gtk_widget_hide(GTK_WIDGET(status_icon));
g_object_unref(G_OBJECT(status_icon));
return;
}