[Xfce4-commits] [xfce/xfdesktop] 25/34: Fix gtk_image_menu warnings

noreply at xfce.org noreply at xfce.org
Sun Apr 16 07:06:59 CEST 2017


This is an automated email from the git hooks/post-receive script.

eric pushed a commit to branch master
in repository xfce/xfdesktop.

commit 46405e5720984650139ab85928138ac783e3458c
Author: Eric Koegel <eric.koegel at gmail.com>
Date:   Fri Apr 14 14:50:46 2017 +0300

    Fix gtk_image_menu warnings
    
    Pull in the garcon_gtk_menu_create_menu_item function so we don't
    reinvent the wheel and generate image menu items ourselves.
---
 common/xfdesktop-common.c         |  65 ++++++++++++++++++
 common/xfdesktop-common.h         |   6 ++
 src/menu.c                        |   5 +-
 src/windowlist.c                  |  23 +++----
 src/xfce-desktop.c                |   1 +
 src/xfdesktop-file-icon-manager.c | 139 +++++++++++++++-----------------------
 6 files changed, 140 insertions(+), 99 deletions(-)

diff --git a/common/xfdesktop-common.c b/common/xfdesktop-common.c
index a96e6ea..4b06f73 100644
--- a/common/xfdesktop-common.c
+++ b/common/xfdesktop-common.c
@@ -181,6 +181,71 @@ xfdesktop_remove_whitspaces(gchar* str)
 }
 
 
+
+/* Adapted from garcon_gtk_menu_create_menu_item because I don't want
+ * to write it over and over.
+ */
+GtkWidget*
+xfdesktop_menu_create_menu_item_with_markup(const gchar *name,
+                                            GtkWidget   *image)
+{
+    GtkWidget *mi;
+    GtkWidget *box;
+    GtkWidget *label;
+
+    /* create item */
+    mi = gtk_menu_item_new ();
+    label = gtk_label_new (NULL);
+    gtk_label_set_markup (GTK_LABEL (label), name);
+    gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_LEFT);
+    gtk_label_set_xalign (GTK_LABEL (label), 0.0);
+
+    box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
+    gtk_widget_set_halign (label, GTK_ALIGN_START);
+
+    gtk_widget_show (image);
+
+    /* Add the image and label to the box, add the box to the menu item */
+    gtk_box_pack_start (GTK_BOX (box), image, FALSE, FALSE, 0);
+    gtk_box_pack_start (GTK_BOX (box), label, TRUE, TRUE, 6);
+    gtk_widget_show_all (box);
+    gtk_container_add (GTK_CONTAINER (mi), box);
+
+    return mi;
+}
+
+
+
+GtkWidget*
+xfdesktop_menu_create_menu_item_with_mnemonic(const gchar *name,
+                                              GtkWidget   *image)
+{
+    GtkWidget *mi;
+    GtkWidget *box;
+    GtkWidget *label;
+
+    /* create item */
+    mi = gtk_menu_item_new ();
+    label = gtk_label_new_with_mnemonic (name);
+    gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_LEFT);
+    gtk_label_set_xalign (GTK_LABEL (label), 0.0);
+
+    box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
+    gtk_widget_set_halign (label, GTK_ALIGN_START);
+
+    gtk_widget_show (image);
+
+    /* Add the image and label to the box, add the box to the menu item */
+    gtk_box_pack_start (GTK_BOX (box), image, FALSE, FALSE, 0);
+    gtk_box_pack_start (GTK_BOX (box), label, TRUE, TRUE, 6);
+    gtk_widget_show_all (box);
+    gtk_container_add (GTK_CONTAINER (mi), box);
+
+    return mi;
+}
+
+
+
 #ifdef G_ENABLE_DEBUG
 /* With --enable-debug=full turn on debugging messages from the start */
 static gboolean enable_debug = TRUE;
diff --git a/common/xfdesktop-common.h b/common/xfdesktop-common.h
index b056762..2310441 100644
--- a/common/xfdesktop-common.h
+++ b/common/xfdesktop-common.h
@@ -99,6 +99,12 @@ gint xfce_translate_image_styles(gint input);
 
 gchar* xfdesktop_remove_whitspaces(gchar* str);
 
+GtkWidget* xfdesktop_menu_create_menu_item_with_markup(const gchar *name,
+                                                       GtkWidget   *image);
+
+GtkWidget* xfdesktop_menu_create_menu_item_with_mnemonic(const gchar *name,
+                                                         GtkWidget   *image);
+
 #if defined(G_HAVE_ISO_VARARGS)
 
 #define XF_DEBUG(...) xfdesktop_debug (__func__, __FILE__, __LINE__, __VA_ARGS__)
diff --git a/src/menu.c b/src/menu.c
index b33607d..a614141 100644
--- a/src/menu.c
+++ b/src/menu.c
@@ -77,9 +77,8 @@ menu_populate(XfceDesktop *desktop,
                                            GTK_ICON_SIZE_MENU);
         gtk_widget_show(img);
     }
-    
-    mi = gtk_image_menu_item_new_with_mnemonic(_("_Applications"));
-    gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(mi), img);
+
+    mi = xfdesktop_menu_create_menu_item_with_mnemonic(_("_Applications"), img);
     gtk_widget_show(mi);
 
     XF_DEBUG("show desktop menu icons %s", show_desktop_menu_icons ? "TRUE" : "FALSE");
diff --git a/src/windowlist.c b/src/windowlist.c
index 388610d..03b915e 100644
--- a/src/windowlist.c
+++ b/src/windowlist.c
@@ -147,6 +147,7 @@ menulist_set_label_flags(GtkWidget *widget, gpointer data)
     }
 }
 
+
 static GtkWidget *
 menu_item_from_wnck_window(WnckWindow *wnck_window, gint icon_width,
         gint icon_height)
@@ -199,11 +200,7 @@ menu_item_from_wnck_window(WnckWindow *wnck_window, gint icon_width,
             img = gtk_image_new_from_pixbuf(icon);
     }
 
-    if(img) {
-        mi = gtk_image_menu_item_new_with_label(label->str);
-        gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(mi), img);
-    } else
-        mi = gtk_menu_item_new_with_label(label->str);
+    mi = xfdesktop_menu_create_menu_item_with_markup(label->str, img);
 
     g_string_free(label, TRUE);
 
@@ -245,7 +242,8 @@ windowlist_populate(XfceDesktop *desktop,
     if(menu_children) {
         GtkWidget *tmpmenu = gtk_menu_new();
         gtk_menu_set_screen(GTK_MENU(tmpmenu), gscreen);
-        
+        gtk_menu_set_reserve_toggle_size (GTK_MENU (tmpmenu), FALSE);
+
         mi = gtk_separator_menu_item_new();
         gtk_widget_show(mi);
         gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi);
@@ -288,7 +286,7 @@ windowlist_populate(XfceDesktop *desktop,
             label = gtk_bin_get_child(GTK_BIN(mi));
             gtk_label_set_use_markup(GTK_LABEL(label), TRUE);
             /* center the workspace header */
-            gtk_misc_set_alignment(GTK_MISC(label), 0.44f, 0);
+            gtk_label_set_xalign (GTK_LABEL(label), 0.44f);
             /* If it's not the active workspace, make the color insensitive */
             if(wnck_workspace != active_workspace) {
                 GtkWidget *lbl = gtk_bin_get_child(GTK_BIN(mi));
@@ -305,6 +303,7 @@ windowlist_populate(XfceDesktop *desktop,
             
             if(wl_submenus) {
                 submenu = gtk_menu_new();
+                gtk_menu_set_reserve_toggle_size (GTK_MENU (submenu), FALSE);
                 gtk_menu_item_set_submenu(GTK_MENU_ITEM(mi), submenu);
             }
         }
@@ -362,9 +361,8 @@ windowlist_populate(XfceDesktop *desktop,
     if(wl_add_remove_options) {
         /* 'add workspace' item */
         if(wl_show_icons) {
-            img = gtk_image_new_from_stock(GTK_STOCK_ADD, GTK_ICON_SIZE_MENU);
-            mi = gtk_image_menu_item_new_with_mnemonic(_("_Add Workspace"));
-            gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(mi), img);
+            img = gtk_image_new_from_icon_name("list-add", GTK_ICON_SIZE_MENU);
+            mi = xfdesktop_menu_create_menu_item_with_mnemonic(_("_Add Workspace"), img);
         } else
             mi = gtk_menu_item_new_with_mnemonic(_("_Add Workspace"));
         gtk_widget_show(mi);
@@ -381,9 +379,8 @@ windowlist_populate(XfceDesktop *desktop,
             g_free(ws_name_esc);
         }
         if(wl_show_icons) {
-            img = gtk_image_new_from_stock(GTK_STOCK_REMOVE, GTK_ICON_SIZE_MENU);
-            mi = gtk_image_menu_item_new_with_mnemonic(rm_label);
-            gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(mi), img);
+            img = gtk_image_new_from_icon_name("list-remove", GTK_ICON_SIZE_MENU);
+            mi = xfdesktop_menu_create_menu_item_with_mnemonic(rm_label, img);
         } else
             mi = gtk_menu_item_new_with_mnemonic(rm_label);
         g_free(rm_label);
diff --git a/src/xfce-desktop.c b/src/xfce-desktop.c
index f104450..7b7d406 100644
--- a/src/xfce-desktop.c
+++ b/src/xfce-desktop.c
@@ -1714,6 +1714,7 @@ xfce_desktop_do_menu_popup(XfceDesktop *desktop,
 
     menu = gtk_menu_new();
     gtk_menu_set_screen(GTK_MENU(menu), screen);
+    gtk_menu_set_reserve_toggle_size (GTK_MENU (menu), FALSE);
     g_signal_connect_swapped(G_OBJECT(menu), "deactivate",
                              G_CALLBACK(g_idle_add),
                              (gpointer)xfce_desktop_menu_destroy_idled);
diff --git a/src/xfdesktop-file-icon-manager.c b/src/xfdesktop-file-icon-manager.c
index f670e4a..1ee8a4c 100644
--- a/src/xfdesktop-file-icon-manager.c
+++ b/src/xfdesktop-file-icon-manager.c
@@ -1088,20 +1088,18 @@ xfdesktop_menu_item_from_app_info(XfdesktopFileIconManager *fmanager,
                                 g_app_info_get_name(app_info));
     }
 
+    gicon = g_app_info_get_icon(app_info);
+    img = gtk_image_new_from_gicon(gicon, GTK_ICON_SIZE_MENU);
+
     if(with_mnemonic)
-        mi = gtk_image_menu_item_new_with_mnemonic(title);
+        mi = xfdesktop_menu_create_menu_item_with_mnemonic(title, img);
     else
-        mi = gtk_image_menu_item_new_with_label(title);
+        mi = xfdesktop_menu_create_menu_item_with_markup(title, img);
     g_free(title);
     
     g_object_set_qdata_full(G_OBJECT(mi), xfdesktop_app_info_quark,
                             g_object_ref(app_info), g_object_unref);
-    
-    gicon = g_app_info_get_icon(app_info);
-    img = gtk_image_new_from_gicon(gicon, GTK_ICON_SIZE_MENU);
-    gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(mi),
-                                  img);
-    gtk_widget_show(img);
+
     gtk_widget_show(mi);
     
     g_signal_connect(G_OBJECT(mi), "activate",
@@ -1306,14 +1304,13 @@ xfdesktop_file_icon_menu_fill_template_menu(GtkWidget *menu,
         if(dot)
             *dot = '\0';
 
-        /* allocate a new menu item */
-        item = gtk_image_menu_item_new_with_label(label);
-        g_free(label);
-
         /* determine the icon to display */
         icon = g_file_info_get_icon(info);
         image = gtk_image_new_from_gicon(icon, GTK_ICON_SIZE_MENU);
-        gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), image);
+
+        /* allocate a new menu item */
+        item = xfdesktop_menu_create_menu_item_with_markup(label, image);
+        g_free(label);
 
         /* add the item to the menu */
         gtk_widget_show(item);
@@ -1442,8 +1439,7 @@ xfdesktop_file_icon_manager_populate_context_menu(XfceDesktop *desktop,
         if(multi_sel) {
             img = gtk_image_new_from_stock(GTK_STOCK_OPEN, GTK_ICON_SIZE_MENU);
             gtk_widget_show(img);
-            mi = gtk_image_menu_item_new_with_mnemonic(_("_Open all"));
-            gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(mi), img);
+            mi = xfdesktop_menu_create_menu_item_with_mnemonic(_("_Open all"), img);
             gtk_widget_show(mi);
             gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi);
             g_signal_connect(G_OBJECT(mi), "activate",
@@ -1456,12 +1452,10 @@ xfdesktop_file_icon_manager_populate_context_menu(XfceDesktop *desktop,
         } else if(info) {
             if(g_file_info_get_file_type(info) == G_FILE_TYPE_DIRECTORY) {
                 img = gtk_image_new_from_stock(GTK_STOCK_OPEN, GTK_ICON_SIZE_MENU);
-                gtk_widget_show(img);
                 if(file_icon == fmanager->priv->desktop_icon)
-                    mi = gtk_image_menu_item_new_with_mnemonic(_("_Open in New Window"));
+                    mi = xfdesktop_menu_create_menu_item_with_mnemonic(_("_Open in New Window"), img);
                 else
-                    mi = gtk_image_menu_item_new_with_mnemonic(_("_Open"));
-                gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(mi), img);
+                    mi = xfdesktop_menu_create_menu_item_with_mnemonic(_("_Open"), img);
                 gtk_widget_show(mi);
                 gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi);
                 g_signal_connect(G_OBJECT(mi), "activate",
@@ -1479,7 +1473,9 @@ xfdesktop_file_icon_manager_populate_context_menu(XfceDesktop *desktop,
 
                     /* create launcher item */
 
-                    mi = gtk_image_menu_item_new_with_mnemonic(_("Create _Launcher..."));
+                    icon = g_content_type_get_icon("application/x-desktop");
+                    img = gtk_image_new_from_gicon(icon, GTK_ICON_SIZE_MENU);
+                    mi = xfdesktop_menu_create_menu_item_with_mnemonic(_("Create _Launcher..."), img);
                     g_object_set_data(G_OBJECT(mi), "xfdesktop-launcher-type", "Application");
                     gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi);
                     gtk_widget_show(mi);
@@ -1488,14 +1484,12 @@ xfdesktop_file_icon_manager_populate_context_menu(XfceDesktop *desktop,
                                      G_CALLBACK(xfdesktop_file_icon_menu_create_launcher),
                                      fmanager);
 
-                    icon = g_content_type_get_icon("application/x-desktop");
-                    img = gtk_image_new_from_gicon(icon, GTK_ICON_SIZE_MENU);
-                    gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(mi), img);
-                    gtk_widget_show(img);
 
                     /* create link item */
-                    
-                    mi = gtk_image_menu_item_new_with_mnemonic(_("Create _URL Link..."));
+
+                    icon = g_themed_icon_new("insert-link");
+                    img = gtk_image_new_from_gicon(icon, GTK_ICON_SIZE_MENU);
+                    mi = xfdesktop_menu_create_menu_item_with_mnemonic(_("Create _URL Link..."), img);
                     g_object_set_data(G_OBJECT(mi), "xfdesktop-launcher-type", "Link");
                     gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi);
                     gtk_widget_show(mi);
@@ -1504,14 +1498,12 @@ xfdesktop_file_icon_manager_populate_context_menu(XfceDesktop *desktop,
                                      G_CALLBACK(xfdesktop_file_icon_menu_create_launcher),
                                      fmanager);
                     
-                    icon = g_themed_icon_new("insert-link");
-                    img = gtk_image_new_from_gicon(icon, GTK_ICON_SIZE_MENU);
-                    gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(mi), img);
-                    gtk_widget_show(img);
 
                     /* create folder item */
 
-                    mi = gtk_image_menu_item_new_with_mnemonic(_("Create _Folder..."));
+                    icon = g_themed_icon_new("folder-new");
+                    img = gtk_image_new_from_gicon(icon, GTK_ICON_SIZE_MENU);
+                    mi = xfdesktop_menu_create_menu_item_with_mnemonic(_("Create _Folder..."), img);
                     gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi);
                     gtk_widget_show(mi);
 
@@ -1519,22 +1511,17 @@ xfdesktop_file_icon_manager_populate_context_menu(XfceDesktop *desktop,
                                      G_CALLBACK(xfdesktop_file_icon_menu_create_folder),
                                      fmanager);
 
-                    icon = g_themed_icon_new("folder-new");
-                    img = gtk_image_new_from_gicon(icon, GTK_ICON_SIZE_MENU);
-                    gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(mi), img);
-                    gtk_widget_show(img);
 
                     /* create document submenu, 0 disables the sub-menu */
                     if(fmanager->priv->max_templates > 0) {
                         img = gtk_image_new_from_stock(GTK_STOCK_NEW, GTK_ICON_SIZE_MENU);
-                        gtk_widget_show(img);
-                        mi = gtk_image_menu_item_new_with_mnemonic(_("Create _Document"));
-                        gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(mi), img);
+                        mi = xfdesktop_menu_create_menu_item_with_mnemonic(_("Create _Document"), img);
                         gtk_widget_show(mi);
                         gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi);
 
                         tmpl_menu = gtk_menu_new();
                         gtk_menu_item_set_submenu(GTK_MENU_ITEM(mi), tmpl_menu);
+                        gtk_menu_set_reserve_toggle_size (GTK_MENU (tmpl_menu), FALSE);
 
                         /* check if XDG_TEMPLATES_DIR="$HOME" and don't show
                          * templates if so. */
@@ -1568,9 +1555,7 @@ xfdesktop_file_icon_manager_populate_context_menu(XfceDesktop *desktop,
 
                         /* add the "Empty File" template option */
                         img = gtk_image_new_from_stock(GTK_STOCK_FILE, GTK_ICON_SIZE_MENU);
-                        gtk_widget_show(img);
-                        mi = gtk_image_menu_item_new_with_mnemonic(_("_Empty File"));
-                        gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(mi), img);
+                        mi = xfdesktop_menu_create_menu_item_with_mnemonic(_("_Empty File"), img);
                         gtk_widget_show(mi);
                         gtk_menu_shell_append(GTK_MENU_SHELL(tmpl_menu), mi);
                         g_signal_connect(G_OBJECT(mi), "activate",
@@ -1585,9 +1570,7 @@ xfdesktop_file_icon_manager_populate_context_menu(XfceDesktop *desktop,
             } else {
                 if(xfdesktop_file_utils_file_is_executable(info)) {
                     img = gtk_image_new_from_stock(GTK_STOCK_EXECUTE, GTK_ICON_SIZE_MENU);
-                    gtk_widget_show(img);
-                    mi = gtk_image_menu_item_new_with_mnemonic(_("_Execute"));
-                    gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(mi), img);
+                    mi = xfdesktop_menu_create_menu_item_with_mnemonic(_("_Execute"), img);
                     gtk_widget_show(mi);
                     gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi);
 
@@ -1604,10 +1587,8 @@ xfdesktop_file_icon_manager_populate_context_menu(XfceDesktop *desktop,
                     {
                         GFile *file = xfdesktop_file_icon_peek_file(file_icon);
 
-                        img = gtk_image_new_from_stock(GTK_STOCK_EDIT, GTK_ICON_SIZE_MENU);
-                        gtk_widget_show(img);
-                        mi = gtk_image_menu_item_new_with_mnemonic(_("_Edit Launcher"));
-                        gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(mi), img);
+                        img = gtk_image_new_from_icon_name("gtk-edit", GTK_ICON_SIZE_MENU);
+                        mi = xfdesktop_menu_create_menu_item_with_mnemonic(_("_Edit Launcher"), img);
                         g_object_set_data_full(G_OBJECT(mi), "file", 
                                                g_object_ref(file), g_object_unref);
                         gtk_widget_show(mi);
@@ -1691,7 +1672,7 @@ xfdesktop_file_icon_manager_populate_context_menu(XfceDesktop *desktop,
                         }
                     }
 
-                    mi = gtk_image_menu_item_new_with_mnemonic(_("Open With Other _Application..."));
+                    mi = xfdesktop_menu_create_menu_item_with_mnemonic(_("Open With Other _Application..."), NULL);
                     gtk_widget_show(mi);
                     if(list_len >= 3)
                         gtk_menu_shell_append(GTK_MENU_SHELL(app_infos_menu), mi);
@@ -1705,9 +1686,8 @@ xfdesktop_file_icon_manager_populate_context_menu(XfceDesktop *desktop,
                     g_list_free(app_infos);
                 } else {
                     img = gtk_image_new_from_stock(GTK_STOCK_OPEN, GTK_ICON_SIZE_MENU);
-                    gtk_widget_show(img);
-                    mi = gtk_image_menu_item_new_with_mnemonic(_("Open With Other _Application..."));
-                    gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(mi), img);
+                    img = gtk_image_new_from_icon_name("document-open", GTK_ICON_SIZE_MENU);
+                    mi = xfdesktop_menu_create_menu_item_with_mnemonic(_("Open With Other _Application..."), img);
                     gtk_widget_show(mi);
                     gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi);
                     g_signal_connect(G_OBJECT(mi), "activate",
@@ -1724,7 +1704,8 @@ xfdesktop_file_icon_manager_populate_context_menu(XfceDesktop *desktop,
         if(file_icon == fmanager->priv->desktop_icon) {
             /* Menu on the root desktop window */
             /* Paste */
-            mi = gtk_image_menu_item_new_from_stock(GTK_STOCK_PASTE, NULL);
+            img = gtk_image_new_from_icon_name("edit-paste", GTK_ICON_SIZE_MENU);
+            mi = xfdesktop_menu_create_menu_item_with_mnemonic(_("_Paste"), img);
             gtk_widget_show(mi);
             gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi);
             if(xfdesktop_clipboard_manager_get_can_paste(clipboard_manager)) {
@@ -1741,7 +1722,8 @@ xfdesktop_file_icon_manager_populate_context_menu(XfceDesktop *desktop,
         } else if(!multi_sel_special) {
             /* Menu popup on an icon */
             /* Cut */
-            mi = gtk_image_menu_item_new_from_stock(GTK_STOCK_CUT, NULL);
+            img = gtk_image_new_from_icon_name("edit-cut", GTK_ICON_SIZE_MENU);
+            mi = xfdesktop_menu_create_menu_item_with_mnemonic("Cu_t", img);
             gtk_widget_show(mi);
             gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi);
             if(multi_sel || xfdesktop_file_icon_can_delete_file(file_icon)) {
@@ -1752,7 +1734,8 @@ xfdesktop_file_icon_manager_populate_context_menu(XfceDesktop *desktop,
                 gtk_widget_set_sensitive(mi, FALSE);
 
             /* Copy */
-            mi = gtk_image_menu_item_new_from_stock(GTK_STOCK_COPY, NULL);
+            img = gtk_image_new_from_icon_name("edit-copy", GTK_ICON_SIZE_MENU);
+            mi = xfdesktop_menu_create_menu_item_with_mnemonic("_Copy", img);
             gtk_widget_show(mi);
             gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi);
             g_signal_connect(G_OBJECT(mi), "activate",
@@ -1763,10 +1746,8 @@ xfdesktop_file_icon_manager_populate_context_menu(XfceDesktop *desktop,
             if(!multi_sel && info) {
                 if(g_file_info_get_file_type(info) == G_FILE_TYPE_DIRECTORY
                    && g_file_info_get_attribute_boolean(info, G_FILE_ATTRIBUTE_ACCESS_CAN_WRITE)) {
-                    img = gtk_image_new_from_stock(GTK_STOCK_PASTE, GTK_ICON_SIZE_MENU);
-                    gtk_widget_show(img);
-                    mi = gtk_image_menu_item_new_with_mnemonic(_("Paste Into Folder"));
-                    gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(mi), img);
+                    img = gtk_image_new_from_icon_name("edit-paste", GTK_ICON_SIZE_MENU);
+                    mi = xfdesktop_menu_create_menu_item_with_mnemonic(_("Paste Into Folder"), img);
                     gtk_widget_show(mi);
                     gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi);
                     if(xfdesktop_clipboard_manager_get_can_paste(clipboard_manager)) {
@@ -1784,11 +1765,8 @@ xfdesktop_file_icon_manager_populate_context_menu(XfceDesktop *desktop,
             gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi);
 
             /* Trash */
-            mi = gtk_image_menu_item_new_with_mnemonic(_("Mo_ve to Trash"));
-            /* Add the trashcan image */
             img = gtk_image_new_from_icon_name("user-trash-full", GTK_ICON_SIZE_MENU);
-            gtk_widget_show(img);
-            gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(mi), img);
+            mi = xfdesktop_menu_create_menu_item_with_mnemonic(_("Mo_ve to Trash"), img);
             gtk_widget_show(mi);
             gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi);
             if(multi_sel || xfdesktop_file_icon_can_delete_file(file_icon)) {
@@ -1799,7 +1777,8 @@ xfdesktop_file_icon_manager_populate_context_menu(XfceDesktop *desktop,
                 gtk_widget_set_sensitive(mi, FALSE);
 
             /* Delete */
-            mi = gtk_image_menu_item_new_from_stock(GTK_STOCK_DELETE, NULL);
+            img = gtk_image_new_from_icon_name("edit-delete", GTK_ICON_SIZE_MENU);
+            mi = xfdesktop_menu_create_menu_item_with_mnemonic(_("_Delete"), img);
             gtk_widget_show(mi);
             gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi);
             if(multi_sel || xfdesktop_file_icon_can_delete_file(file_icon)) {
@@ -1815,7 +1794,7 @@ xfdesktop_file_icon_manager_populate_context_menu(XfceDesktop *desktop,
             gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi);
 
             /* Rename */
-            mi = gtk_image_menu_item_new_with_mnemonic(_("_Rename..."));
+            mi = gtk_menu_item_new_with_mnemonic(_("_Rename..."));
             gtk_widget_show(mi);
             gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi);
             if(!multi_sel && xfdesktop_file_icon_can_rename_file(file_icon)) {
@@ -1882,9 +1861,7 @@ xfdesktop_file_icon_manager_populate_context_menu(XfceDesktop *desktop,
             /* Menu on the root desktop window */
             /* show arrange desktop icons option */
             img = gtk_image_new_from_stock(GTK_STOCK_SORT_ASCENDING, GTK_ICON_SIZE_MENU);
-            gtk_widget_show(img);
-            mi = gtk_image_menu_item_new_with_mnemonic(_("Arrange Desktop _Icons"));
-            gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(mi), img);
+            mi = xfdesktop_menu_create_menu_item_with_mnemonic(_("Arrange Desktop _Icons"), img);
             gtk_widget_show(mi);
             gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi);
             g_signal_connect(G_OBJECT(mi), "activate",
@@ -1893,9 +1870,7 @@ xfdesktop_file_icon_manager_populate_context_menu(XfceDesktop *desktop,
 
             /* Desktop settings window */
             img = gtk_image_new_from_stock(GTK_STOCK_PREFERENCES, GTK_ICON_SIZE_MENU);
-            gtk_widget_show(img);
-            mi = gtk_image_menu_item_new_with_mnemonic(_("Desktop _Settings..."));
-            gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(mi), img);
+            mi = xfdesktop_menu_create_menu_item_with_mnemonic(_("Desktop _Settings..."), img);
             gtk_widget_show(mi);
             gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi);
             g_signal_connect(G_OBJECT(mi), "activate",
@@ -1903,10 +1878,7 @@ xfdesktop_file_icon_manager_populate_context_menu(XfceDesktop *desktop,
         }
 
         /* Properties - applies to desktop window or an icon on the desktop */
-        img = gtk_image_new_from_stock(GTK_STOCK_PROPERTIES, GTK_ICON_SIZE_MENU);
-        gtk_widget_show(img);
-        mi = gtk_image_menu_item_new_with_mnemonic(_("P_roperties..."));
-        gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(mi), img);
+        mi = xfdesktop_menu_create_menu_item_with_mnemonic(_("P_roperties..."), img);
         gtk_widget_show(mi);
         gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi);
         if(multi_sel || !info)
@@ -3498,17 +3470,17 @@ void xfdesktop_dnd_menu (XfdesktopIconViewManager *manager,
 
     /* This adds the Copy, Move, & Link options */
     for(menu_item = 0; menu_item < G_N_ELEMENTS(actions); menu_item++) {
-        item = gtk_image_menu_item_new_with_mnemonic(_(action_names[menu_item]));
-        gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
-        g_signal_connect(G_OBJECT(item), "activate", G_CALLBACK(xfdesktop_dnd_item), &response);
-        g_object_set_data(G_OBJECT(item), "action", GUINT_TO_POINTER(actions[menu_item]));
-        /* add image to the menu item */
         if(G_LIKELY(action_icons[menu_item] != NULL)) {
             image = gtk_image_new_from_icon_name(action_icons[menu_item], GTK_ICON_SIZE_MENU);
-            gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), image);
-            gtk_widget_show(image);
+        } else {
+            image = NULL;
         }
 
+        item = xfdesktop_menu_create_menu_item_with_mnemonic(_(action_names[menu_item]), image);
+        gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
+        g_signal_connect(G_OBJECT(item), "activate", G_CALLBACK(xfdesktop_dnd_item), &response);
+        g_object_set_data(G_OBJECT(item), "action", GUINT_TO_POINTER(actions[menu_item]));
+
         gtk_widget_show(item);
     }
 
@@ -3518,7 +3490,8 @@ void xfdesktop_dnd_menu (XfdesktopIconViewManager *manager,
     gtk_widget_show(item);
 
     /* Cancel option */
-    item = gtk_image_menu_item_new_from_stock(GTK_STOCK_CANCEL, NULL);
+    image = gtk_image_new_from_icon_name("gtk-cancel", GTK_ICON_SIZE_MENU);
+    item = xfdesktop_menu_create_menu_item_with_mnemonic(_("_Cancel"), image);
     gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
     g_signal_connect(G_OBJECT(item), "activate", G_CALLBACK(xfdesktop_dnd_item_cancel), &response);
     gtk_widget_show(item);

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Xfce4-commits mailing list