summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Tarricone <brian@tarricone.org>2008-10-09 00:22:25 +0000
committerBrian Tarricone <brian@tarricone.org>2008-10-09 00:22:25 +0000
commit350cc4ee4a83e4c1310ac1d6b38a6d6b25886eb3 (patch)
treeb7493eb30220049673bf959ee68e410f418d3949
parenta4fd396266fe8ab6025805372c216cb43fc85bca (diff)
downloadxfdesktop-350cc4ee4a83e4c1310ac1d6b38a6d6b25886eb3.tar.gz
make the desktop menu plugin also obey the CustomizeDesktopMenu kiosk val
patch from nick schermer (bug 1026) (Old svn revision: 28106)
-rw-r--r--panel-plugin/desktop-menu-plugin.c48
1 files changed, 35 insertions, 13 deletions
diff --git a/panel-plugin/desktop-menu-plugin.c b/panel-plugin/desktop-menu-plugin.c
index d5958893..b0ad2abb 100644
--- a/panel-plugin/desktop-menu-plugin.c
+++ b/panel-plugin/desktop-menu-plugin.c
@@ -89,6 +89,24 @@ typedef struct _DMPlugin {
} 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 @@ dmp_create_options(XfcePanelPlugin *plugin, DMPlugin *dmp)
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 @@ desktop_menu_plugin_construct(XfcePanelPlugin *plugin)
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);