[gdm] Hide control-center item from user switch if unavailable



commit 2696ee79767d58ed0236f3a08d6d5af272a58ef5
Author: Ray Strode <rstrode redhat com>
Date:   Wed Jun 16 10:20:59 2010 -0400

    Hide control-center item from user switch if unavailable
    
    Some distributions don't ship the control-center shell, or
    ship it in a subpackage.  In those cases, we want to gracefully
    handle it not being available.

 gui/user-switch-applet/applet.c |   11 +++++++++--
 1 files changed, 9 insertions(+), 2 deletions(-)
---
diff --git a/gui/user-switch-applet/applet.c b/gui/user-switch-applet/applet.c
index d4efc26..a3e0881 100644
--- a/gui/user-switch-applet/applet.c
+++ b/gui/user-switch-applet/applet.c
@@ -597,7 +597,16 @@ static gboolean
 menu_expose_cb (GtkWidget *menu,
                 gpointer   data)
 {
+        char *program;
+        GdmAppletData *adata = data;
 
+        program = g_find_program_in_path ("gnome-control-center");
+        if (program != NULL) {
+                gtk_widget_show (adata->control_panel_item);
+        } else {
+                gtk_widget_hide (adata->control_panel_item);
+        }
+        g_free (program);
         return FALSE;
 }
 
@@ -1131,8 +1140,6 @@ create_sub_menu (GdmAppletData *adata)
                           G_CALLBACK (menuitem_style_set_cb), adata);
         g_signal_connect (adata->control_panel_item, "activate",
                           G_CALLBACK (on_control_panel_activate), adata);
-        gtk_widget_show (adata->control_panel_item);
-
 
         item = gtk_separator_menu_item_new ();
         gtk_menu_shell_append (GTK_MENU_SHELL (adata->menu), item);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]