@@ -604,6 +604,38 @@ create_image_widget_for_bookmark (CajaBookmark *bookmark)
604
604
return widget ;
605
605
}
606
606
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
+
607
639
/**
608
640
* caja_bookmark_menu_item_new:
609
641
*
@@ -614,23 +646,15 @@ create_image_widget_for_bookmark (CajaBookmark *bookmark)
614
646
GtkWidget *
615
647
caja_bookmark_menu_item_new (CajaBookmark * bookmark )
616
648
{
649
+ GdkPixbuf * icon ;
617
650
GtkWidget * menu_item ;
618
651
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 );
626
652
627
653
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 );
634
658
635
659
return menu_item ;
636
660
}
0 commit comments