aboutsummaryrefslogtreecommitdiff
path: root/src/indicator-application.c
diff options
context:
space:
mode:
authorTed Gould <ted@gould.cx>2010-08-05 13:56:56 -0500
committerTed Gould <ted@gould.cx>2010-08-05 13:56:56 -0500
commit54c6103dc570dbbee0ba8402d3c7156ac40dc5a4 (patch)
treedb6893ec0a8239d6d364566be0f9d9a11f7fcd37 /src/indicator-application.c
parentb17e62540f4ac630d7af7386409779271f3a2a57 (diff)
downloadlibayatana-appindicator-54c6103dc570dbbee0ba8402d3c7156ac40dc5a4.tar.gz
libayatana-appindicator-54c6103dc570dbbee0ba8402d3c7156ac40dc5a4.tar.bz2
libayatana-appindicator-54c6103dc570dbbee0ba8402d3c7156ac40dc5a4.zip
Showing and hiding the entries with removal.
Diffstat (limited to 'src/indicator-application.c')
-rw-r--r--src/indicator-application.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/indicator-application.c b/src/indicator-application.c
index 2b32a1b..31c3aa9 100644
--- a/src/indicator-application.c
+++ b/src/indicator-application.c
@@ -649,7 +649,28 @@ application_label_changed (DBusGProxy * proxy, gint position, const gchar * labe
if (signal_reload) {
/* Telling the listener that this has been removed, and then
readded to make it reparse the entry. */
+ if (app->entry.label != NULL) {
+ gtk_widget_hide(GTK_WIDGET(app->entry.label));
+ }
+
+ if (app->entry.image != NULL) {
+ gtk_widget_hide(GTK_WIDGET(app->entry.image));
+ }
+
+ if (app->entry.menu != NULL) {
+ gtk_menu_detach(app->entry.menu);
+ }
+
g_signal_emit(G_OBJECT(application), INDICATOR_OBJECT_SIGNAL_ENTRY_REMOVED_ID, 0, &(app->entry), TRUE);
+
+ if (app->entry.label != NULL) {
+ gtk_widget_show(GTK_WIDGET(app->entry.label));
+ }
+
+ if (app->entry.image != NULL) {
+ gtk_widget_show(GTK_WIDGET(app->entry.image));
+ }
+
g_signal_emit(G_OBJECT(application), INDICATOR_OBJECT_SIGNAL_ENTRY_ADDED_ID, 0, &(app->entry), TRUE);
}