+static gboolean
+recent_view_query_tooltip_cb (GtkWidget *widget,
+ gint x,
+ gint y,
+ gboolean keyboard_tip,
+ GtkTooltip *tooltip,
+ gpointer user_data)
+{
+ GtkRecentChooserDefault *impl = user_data;
+ GtkTreeView *tree_view;
+ GtkTreeIter iter;
+ GtkTreePath *path = NULL;
+ GtkRecentInfo *info = NULL;
+ gchar *uri_display;
+
+ if (!impl->show_tips)
+ return FALSE;
+
+ tree_view = GTK_TREE_VIEW (impl->recent_view);
+
+ gtk_tree_view_get_tooltip_context (tree_view,
+ &x, &y,
+ keyboard_tip,
+ NULL, &path, NULL);
+ if (!path)
+ return FALSE;
+
+ if (!gtk_tree_model_get_iter (GTK_TREE_MODEL (impl->recent_store), &iter, path))
+ {
+ gtk_tree_path_free (path);
+ return FALSE;
+ }
+
+ gtk_tree_model_get (GTK_TREE_MODEL (impl->recent_store), &iter,
+ RECENT_INFO_COLUMN, &info,
+ -1);
+
+ uri_display = gtk_recent_info_get_uri_display (info);
+
+ gtk_tooltip_set_text (tooltip, uri_display);
+ gtk_tree_view_set_tooltip_row (tree_view, tooltip, path);
+
+ g_free (uri_display);
+ gtk_tree_path_free (path);
+ gtk_recent_info_unref (info);