Index: applets/clock/calendar-window.c
===================================================================
--- applets/clock/calendar-window.c	(revision 11106)
+++ applets/clock/calendar-window.c	(working copy)
@@ -751,6 +751,34 @@ edit_tasks (CalendarWindow *calwin)
        clock_launch_evolution (calwin, "--component=tasks");
 }
 
+static gboolean
+task_query_tooltip (GtkTreeView  *view,
+                    gint          x,
+                    gint          y,
+                    gboolean      keyboard_mode,
+                    GtkTooltip   *tooltip)
+{
+        GtkTreePath *path;
+        GtkTreeIter iter;
+        gchar *summary;
+
+        if (!gtk_tree_view_get_tooltip_context (view, &x, &y, keyboard_mode,
+                                                NULL, &path, &iter))
+                return FALSE;
+
+        gtk_tree_model_get (gtk_tree_view_get_model (view), &iter,
+                            TASK_COLUMN_SUMMARY, &summary,
+                            -1);
+
+        gtk_tree_view_set_tooltip_row (view, tooltip, path);
+        gtk_tooltip_set_text (tooltip, summary);
+
+        gtk_tree_path_free (path);
+        g_free (summary);
+
+        return TRUE;
+}
+
 static GtkWidget *
 create_task_list (CalendarWindow *calwin,
                   GtkWidget     **tree_view,
@@ -784,6 +812,7 @@ create_task_list (CalendarWindow *calwin
 
         *tree_view = view = gtk_tree_view_new_with_model (GTK_TREE_MODEL (calwin->priv->tasks_filter));
         gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (view), FALSE);
+	gtk_widget_set_has_tooltip (view, TRUE);
 
         g_signal_connect (view, "row-activated",
                           G_CALLBACK (task_activated_cb), calwin);
@@ -842,6 +871,9 @@ create_task_list (CalendarWindow *calwin
 			  G_CALLBACK (calendar_window_tree_selection_changed),
 			  calwin);
 
+        g_signal_connect (view, "query-tooltip",
+                          G_CALLBACK (task_query_tooltip), NULL);
+
         gtk_container_add (GTK_CONTAINER (scrolled), view);
 
         gtk_widget_show (view);
@@ -920,6 +952,34 @@ handle_appointments_changed (CalendarWin
 				 GTK_TREE_MODEL (calwin->priv->weather_filter));
 }
 
+static gboolean
+appointment_query_tooltip (GtkTreeView  *view,
+                           gint          x,
+                           gint          y,
+                           gboolean      keyboard_mode,
+                           GtkTooltip   *tooltip)
+{
+        GtkTreePath *path;
+        GtkTreeIter iter;
+        gchar *summary;
+
+        if (!gtk_tree_view_get_tooltip_context (view, &x, &y, keyboard_mode,
+                                                NULL, &path, &iter))
+                return FALSE;
+
+        gtk_tree_model_get (gtk_tree_view_get_model (view), &iter,
+                            APPOINTMENT_COLUMN_SUMMARY, &summary,
+                            -1);
+
+        gtk_tree_view_set_tooltip_row (view, tooltip, path);
+        gtk_tooltip_set_text (tooltip, summary);
+
+        gtk_tree_path_free (path);
+        g_free (summary);
+
+        return TRUE;
+}       
+
 static GtkWidget *
 create_list_for_appointment_model (CalendarWindow      *calwin,
 				   const char          *label,
@@ -970,6 +1030,7 @@ create_list_for_appointment_model (Calen
 
         *tree_view = view = gtk_tree_view_new_with_model (GTK_TREE_MODEL (*filter));
         gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (view), FALSE);
+	gtk_widget_set_has_tooltip (view, TRUE);
 
         /* Icon */
         column = gtk_tree_view_column_new ();
@@ -1004,6 +1065,9 @@ create_list_for_appointment_model (Calen
 			  G_CALLBACK (calendar_window_tree_selection_changed),
 			  calwin);
 
+        g_signal_connect (view, "query-tooltip",
+                          G_CALLBACK (appointment_query_tooltip), NULL);
+
         gtk_container_add (GTK_CONTAINER (scrolled), view);
 
         gtk_widget_show (view);
