Author: kelnos
Date: 2008-10-09 00:22:25 +0000 (Thu, 09 Oct 2008)
New Revision: 28106

Modified:
   xfdesktop/branches/xfce_4_4/panel-plugin/desktop-menu-plugin.c
Log:
make the desktop menu plugin also obey the CustomizeDesktopMenu kiosk val

patch from nick schermer (bug 1026)


Modified: xfdesktop/branches/xfce_4_4/panel-plugin/desktop-menu-plugin.c
===================================================================
--- xfdesktop/branches/xfce_4_4/panel-plugin/desktop-menu-plugin.c      
2008-10-08 23:25:40 UTC (rev 28105)
+++ xfdesktop/branches/xfce_4_4/panel-plugin/desktop-menu-plugin.c      
2008-10-09 00:22:25 UTC (rev 28106)
@@ -89,6 +89,24 @@
 } DMPlugin;
 
 
+static gboolean
+dmp_allow_menu_customization(void)
+{
+    static gboolean allow_customization = FALSE;
+    static gboolean checked = FALSE;
+
+    if(G_UNLIKELY(!checked)) {
+        XfceKiosk *kiosk;
+        
+        kiosk = xfce_kiosk_new("xfdesktop");
+        allow_customization = xfce_kiosk_query(kiosk, "CustomizeDesktopMenu");
+        xfce_kiosk_free(kiosk);
+        checked = TRUE;
+    }
+
+    return allow_customization;
+}
+
 static gchar *
 dmp_get_real_path(const gchar *raw_path)
 {
@@ -881,11 +899,13 @@
     gtk_widget_show(hbox);
     gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
     
-    btn = xfce_create_mixed_button(GTK_STOCK_EDIT, _("_Edit Menu"));
-    gtk_widget_show(btn);
-    gtk_box_pack_end(GTK_BOX(hbox), btn, FALSE, FALSE, 0);
-    g_signal_connect(G_OBJECT(btn), "clicked",
-            G_CALLBACK(dmp_edit_menu_clicked_cb), dmp);
+    if(G_LIKELY(dmp_allow_menu_customization() == TRUE)) {
+        btn = xfce_create_mixed_button(GTK_STOCK_EDIT, _("_Edit Menu"));
+        gtk_widget_show(btn);
+        gtk_box_pack_end(GTK_BOX(hbox), btn, FALSE, FALSE, 0);
+        g_signal_connect(G_OBJECT(btn), "clicked",
+                G_CALLBACK(dmp_edit_menu_clicked_cb), dmp);
+    }
     
     frame = xfce_create_framebox(_("Icons"), &frame_bin);
     gtk_widget_show(frame);
@@ -1052,14 +1072,16 @@
     gtk_container_add(GTK_CONTAINER(plugin), dmp->button);
     
     /* Add edit menu option to right click menu */
-    img = gtk_image_new_from_stock(GTK_STOCK_EDIT, GTK_ICON_SIZE_MENU);
-    gtk_widget_show(img);
-    mi = gtk_image_menu_item_new_with_label(_("Edit Menu"));
-    gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(mi), img);
-    gtk_widget_show(mi);
-    xfce_panel_plugin_menu_insert_item(plugin, GTK_MENU_ITEM(mi));
-    g_signal_connect(G_OBJECT(mi), "activate", 
-                     G_CALLBACK(dmp_edit_menu_clicked_cb), dmp);
+    if(G_LIKELY(dmp_allow_menu_customization() == TRUE)) {
+        img = gtk_image_new_from_stock(GTK_STOCK_EDIT, GTK_ICON_SIZE_MENU);
+        gtk_widget_show(img);
+        mi = gtk_image_menu_item_new_with_label(_("Edit Menu"));
+        gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(mi), img);
+        gtk_widget_show(mi);
+        xfce_panel_plugin_menu_insert_item(plugin, GTK_MENU_ITEM(mi));
+        g_signal_connect(G_OBJECT(mi), "activate", 
+                         G_CALLBACK(dmp_edit_menu_clicked_cb), dmp);
+    }
     
     g_signal_connect(plugin, "free-data",
                      G_CALLBACK(dmp_free), dmp);

_______________________________________________
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits

Reply via email to