From faca041aa2dfd5e8243eb10ab8dbf609352ffbf5 Mon Sep 17 00:00:00 2001 From: Johan Dahlin Date: Tue, 8 Apr 2003 20:55:36 +0000 Subject: If there exist a favicon for the bookmark, add it to the menu. * src/bookmarks/ephy-topic-action.c (build_topics_menu): If there exist a favicon for the bookmark, add it to the menu. --- src/bookmarks/ephy-topic-action.c | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/bookmarks/ephy-topic-action.c b/src/bookmarks/ephy-topic-action.c index 54fb87eba..0d5d2557b 100644 --- a/src/bookmarks/ephy-topic-action.c +++ b/src/bookmarks/ephy-topic-action.c @@ -145,6 +145,7 @@ build_topics_menu (EphyTopicAction *action, GtkWidget *button) GPtrArray *children; int i; EphyNode *node; + EphyFaviconCache *cache; node = ephy_node_get_from_id (action->priv->topic_id); @@ -152,18 +153,36 @@ build_topics_menu (EphyTopicAction *action, GtkWidget *button) g_signal_connect (menu, "deactivate", G_CALLBACK (menu_deactivate_cb), button); + cache = ephy_embed_shell_get_favicon_cache + (EPHY_EMBED_SHELL (ephy_shell)); + children = ephy_node_get_children (node); for (i = 0; i < children->len; i++) { EphyNode *kid; + const char *icon_location; const char *title; kid = g_ptr_array_index (children, i); + icon_location = ephy_node_get_property_string + (kid, EPHY_NODE_BMK_PROP_ICON); title = ephy_node_get_property_string (kid, EPHY_NODE_BMK_PROP_TITLE); - item = gtk_menu_item_new_with_label (title); + item = gtk_image_menu_item_new_with_label (title); + if (icon_location) { + GdkPixbuf *icon; + GtkWidget *image; + icon = ephy_favicon_cache_get (cache, icon_location); + g_assert (icon != NULL); + image = gtk_image_new_from_pixbuf (icon); + gtk_widget_show (image); + gtk_image_menu_item_set_image + (GTK_IMAGE_MENU_ITEM (item), image); + g_object_unref (icon); + } + g_object_set_data (G_OBJECT (item), "node", kid); g_signal_connect (item, "activate", G_CALLBACK (menu_activate_cb), action); -- cgit v1.2.3