/jds/bin/diff -uprN gnome-panel-2.26.3.old/applets/notification_area/na-tray.c gnome-panel-2.26.3/applets/notification_area/na-tray.c
--- gnome-panel-2.26.3.old/applets/notification_area/na-tray.c 2009-04-19 18:45:09.000000000 +0100
+++ gnome-panel-2.26.3/applets/notification_area/na-tray.c 2009-07-01 18:42:57.062082000 +0100
@@ -51,6 +51,11 @@ struct _NaTrayPrivate
GtkWidget *box;
GtkWidget *frame;
+ gulong query_tooltip_id;
+ gboolean tooltip_enabled;
+
+ GSList *icons;
+
guint idle_redraw_id;
GtkOrientation orientation;
@@ -146,12 +155,20 @@ tray_removed (NaTrayManager *manager,
TraysScreen *trays_screen)
{
NaTray *tray;
+ NaTrayPrivate *priv;
tray = g_hash_table_lookup (trays_screen->icon_table, icon);
if (tray == NULL)
return;
+ priv = tray->priv;
+
g_assert (tray->priv->trays_screen == trays_screen);
+ priv->icons = g_slist_remove (priv->icons, icon);
+
+ if (g_slist_length (priv->icons) == 0) {
+ priv->tooltip_enabled=TRUE;
+ }
g_hash_table_remove (trays_screen->icon_table, icon);
/* this will also destroy the tip associated to this icon */
@@ -727,3 +744,36 @@ na_tray_force_redraw (NaTray *tray)
if (priv->idle_redraw_id == 0)
priv->idle_redraw_id = g_idle_add ((GSourceFunc) idle_redraw_cb, tray);
}
+
+static gboolean
+na_tray_icon_query_tooltip( GtkWidget *applet,
+ gint x,
+ gint y,
+ gboolean keyboard_mode,
+ GtkTooltip *tooltip,
+ gpointer user_data)
+{
+ NaTray *tray = (NaTray*)user_data;
+ NaTrayPrivate *priv;
+
+ priv = tray->priv;
+
+ gtk_tooltip_set_markup (tooltip, _("Area where notification icons appear") );
+
+ return ( priv->tooltip_enabled );
+}
+
+void
+na_tray_set_tooltip (GtkWidget *applet, NaTray *tray)
+{
+ NaTrayPrivate *priv;
+ priv = tray->priv;
+
+ priv->tooltip_enabled=TRUE;
+
+ gtk_widget_set_has_tooltip( GTK_WIDGET(applet), TRUE );
+
+ priv->query_tooltip_id = g_signal_connect(applet, "query-tooltip",
+ G_CALLBACK (na_tray_icon_query_tooltip), tray);
+}
+
diff -ruN gnome-panel-2.27.4.orig/applets/notification_area/main.c gnome-panel-2.27.4/applets/notification_area/main.c
--- gnome-panel-2.27.4.orig/applets/notification_area/main.c 2009-07-19 15:44:22.901680971 +0100
+++ gnome-panel-2.27.4/applets/notification_area/main.c 2009-07-19 15:45:15.316399778 +0100
@@ -243,6 +243,8 @@ on_applet_realized (GtkWidget *widget,
g_signal_connect (applet, "destroy",
G_CALLBACK (applet_destroy), data);
+ na_tray_set_tooltip (GTK_WIDGET (applet), tray);
+
gtk_container_add (GTK_CONTAINER (applet), GTK_WIDGET (tray));
gtk_widget_show (GTK_WIDGET (tray));
diff -ruN gnome-panel-2.29.92.orig/applets/notification_area/na-tray.c gnome-panel-2.29.92/applets/notification_area/na-tray.c
--- gnome-panel-2.29.92.orig/applets/notification_area/na-tray.c 2010-03-11 22:19:45.828748555 +0000
+++ gnome-panel-2.29.92/applets/notification_area/na-tray.c 2010-03-11 22:20:57.182639083 +0000
@@ -244,6 +244,9 @@
gtk_box_pack_start (GTK_BOX (priv->box), icon, FALSE, FALSE, 0);
gtk_box_reorder_child (GTK_BOX (priv->box), icon, position);
+ priv->icons = g_slist_append (priv->icons, icon);
+ priv->tooltip_enabled = FALSE;
+
gtk_widget_show (icon);
}