@@ -604,6 +604,38 @@ create_image_widget_for_bookmark (CajaBookmark *bookmark)
604604 return widget ;
605605}
606606
607+ static GtkWidget *
608+ bookmark_image_menu_item_new_from_pixbuf (GdkPixbuf * icon_pixbuf ,
609+ const gchar * label_name )
610+ {
611+ GtkWidget * icon ;
612+ GtkLabel * label ;
613+
614+ GtkWidget * box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL , 6 );
615+
616+ if (icon_pixbuf )
617+ icon = gtk_image_new_from_pixbuf (icon_pixbuf );
618+ else
619+ icon = gtk_image_new ();
620+
621+ GtkWidget * label_menu = gtk_label_new (g_strconcat (label_name , " " , NULL ));
622+
623+ label = GTK_LABEL (label_menu );
624+ gtk_label_set_use_underline (label , FALSE);
625+ gtk_label_set_ellipsize (label , PANGO_ELLIPSIZE_END );
626+ gtk_label_set_max_width_chars (label , (ELLIPSISED_MENU_ITEM_MIN_CHARS + 2 ));
627+
628+ GtkWidget * menuitem = gtk_menu_item_new ();
629+
630+ gtk_container_add (GTK_CONTAINER (box ), icon );
631+ gtk_container_add (GTK_CONTAINER (box ), label_menu );
632+
633+ gtk_container_add (GTK_CONTAINER (menuitem ), box );
634+ gtk_widget_show_all (menuitem );
635+
636+ return menuitem ;
637+ }
638+
607639/**
608640 * caja_bookmark_menu_item_new:
609641 *
@@ -614,23 +646,15 @@ create_image_widget_for_bookmark (CajaBookmark *bookmark)
614646GtkWidget *
615647caja_bookmark_menu_item_new (CajaBookmark * bookmark )
616648{
649+ GdkPixbuf * icon ;
617650 GtkWidget * menu_item ;
618651 GtkWidget * image_widget ;
619- GtkLabel * label ;
620-
621- menu_item = gtk_image_menu_item_new_with_label (bookmark -> details -> name );
622- label = GTK_LABEL (gtk_bin_get_child (GTK_BIN (menu_item )));
623- gtk_label_set_use_underline (label , FALSE);
624- gtk_label_set_ellipsize (label , PANGO_ELLIPSIZE_END );
625- gtk_label_set_max_width_chars (label , ELLIPSISED_MENU_ITEM_MIN_CHARS );
626652
627653 image_widget = create_image_widget_for_bookmark (bookmark );
628- if (image_widget != NULL )
629- {
630- gtk_widget_show (image_widget );
631- gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_item ),
632- image_widget );
633- }
654+
655+ icon = gtk_image_get_pixbuf (GTK_IMAGE (image_widget ));
656+
657+ menu_item = bookmark_image_menu_item_new_from_pixbuf (icon , bookmark -> details -> name );
634658
635659 return menu_item ;
636660}
0 commit comments