# HG changeset patch # User Wolfgang Rosenauer # Parent c684863b1eb3bcae92ef24bc2ac511985b1ad7e4 Bug 737646 - no biff notification if notification-daemon not running diff --git a/toolkit/system/gnome/nsAlertsIconListener.cpp b/toolkit/system/gnome/nsAlertsIconListener.cpp --- a/toolkit/system/gnome/nsAlertsIconListener.cpp +++ b/toolkit/system/gnome/nsAlertsIconListener.cpp @@ -47,16 +47,17 @@ #include // Compatibility macro for (user_data); alert->SendCallback(); } @@ -338,27 +339,34 @@ nsAlertsIconListener::InitAlertAsync(con appShortName.AssignLiteral("Mozilla"); } if (!notify_init(appShortName.get())) return NS_ERROR_FAILURE; GList *server_caps = notify_get_server_caps(); if (server_caps) { + gHasCaps = true; for (GList* cap = server_caps; cap != NULL; cap = cap->next) { if (!strcmp((char*) cap->data, "actions")) { gHasActions = true; break; } } g_list_foreach(server_caps, (GFunc)g_free, NULL); g_list_free(server_caps); } } + if (!gHasCaps) { + // if notify_get_server_caps() failed above we need to assume + // there is no notification-server to display anything + return NS_ERROR_FAILURE; + } + if (!gHasActions && aAlertTextClickable) return NS_ERROR_FAILURE; // No good, fallback to XUL nsCOMPtr obsServ = do_GetService("@mozilla.org/observer-service;1"); if (obsServ) obsServ->AddObserver(this, "quit-application", true);