]> git.0d.be Git - empathy.git/blobdiff - src/empathy-status-icon.c
Merge back from master
[empathy.git] / src / empathy-status-icon.c
index 1f6a32c954ef90a4c8e2346398e88379deefbbb0..430c9334393778c00d2f4538ed8736f97b264ca1 100644 (file)
@@ -138,10 +138,10 @@ status_icon_update_notification (EmpathyStatusIcon *icon)
        }
 
        if (priv->event) {
-               gchar *message_esc = g_markup_escape_text (priv->event->message, -1);
+               gchar *message_esc = NULL;
 
-               pixbuf = empathy_misc_get_pixbuf_for_notification (priv->event->contact,
-                                                                  priv->event->icon_name);
+               if (priv->event->message != NULL)
+                       message_esc = g_markup_escape_text (priv->event->message, -1);
 
                if (priv->notification) {
                        notify_notification_update (priv->notification,
@@ -155,15 +155,19 @@ status_icon_update_notification (EmpathyStatusIcon *icon)
 
                        g_signal_connect (priv->notification, "closed",
                                          G_CALLBACK (status_icon_notification_closed_cb), icon);
+               }
+
+               pixbuf = empathy_misc_get_pixbuf_for_notification (priv->event->contact,
+                                                                  priv->event->icon_name);
 
-               }
-               /* if icon doesn't exist libnotify will crash */
-               if (pixbuf != NULL)
+               if (pixbuf != NULL) {
                        notify_notification_set_icon_from_pixbuf (priv->notification,
                                                          pixbuf);
+                       g_object_unref (pixbuf);
+               }
+
                notify_notification_show (priv->notification, NULL);
 
-               g_object_unref (pixbuf);
                g_free (message_esc);
        } else {
                notification_close_helper (priv);
@@ -310,24 +314,7 @@ status_icon_set_visibility (EmpathyStatusIcon *icon,
        if (!visible) {
                empathy_window_iconify (priv->window, priv->icon);
        } else {
-               GList *accounts;
-               GList *l;
-               gboolean one_enabled = FALSE;
-
                empathy_window_present (GTK_WINDOW (priv->window), TRUE);
-
-               /* Show the accounts dialog if there is no enabled accounts */
-               accounts = empathy_account_manager_dup_accounts (priv->account_manager);
-               for (l = accounts ; l != NULL ; l = g_list_next (l)) {
-                       one_enabled = empathy_account_is_enabled (EMPATHY_ACCOUNT (l->data))
-                               || one_enabled;
-                       g_object_unref (l->data);
-               }
-               g_list_free (accounts);
-               if (!one_enabled) {
-                       DEBUG ("No enabled account, Showing account dialog");
-                       empathy_accounts_dialog_show (GTK_WINDOW (priv->window), NULL);
-               }
        }
 }