static gboolean panel_action_shutdown_reboot_is_disabled (void) { PanelSessionManager *manager; if (panel_lockdown_get_disable_log_out()) return TRUE; manager = panel_session_manager_get (); return (!panel_session_manager_is_shutdown_available (manager)); }
static void panel_menu_items_lock_logout_separator_notified (PanelLockdown *lockdown, gpointer user_data) { GtkWidget *separator = user_data; if (!panel_lockdown_get_disable_lock_screen (lockdown) || !panel_lockdown_get_disable_switch_user (lockdown) || !panel_lockdown_get_disable_log_out (lockdown)) gtk_widget_show (separator); else gtk_widget_hide (separator); }
void panel_menu_items_append_lock_logout (GtkWidget *menu) { gboolean separator_inserted; GList *children; GList *last; GtkWidget *item; const char *translate; char *label; char *tooltip; separator_inserted = FALSE; children = gtk_container_get_children (GTK_CONTAINER (menu)); last = g_list_last (children); if (last != NULL) { separator_inserted = GTK_IS_SEPARATOR (GTK_WIDGET (last->data)); } g_list_free (children); if (panel_lock_screen_action_available("lock")) { item = panel_menu_items_create_action_item(PANEL_ACTION_LOCK); if (item != NULL) { if (!separator_inserted) { add_menu_separator(menu); separator_inserted = TRUE; } gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); } } if (panel_lockdown_get_disable_log_out ()) return; /* Below this, we only have log out/shutdown items */ /* Translators: translate "1" (msgctxt: "panel:showusername") to anything * but "1" if "Log Out %s" doesn't make any sense in your * language (where %s is a username). */ translate = C_("panel:showusername", "1"); if (strcmp (translate, "1") == 0) { const char *user_name; user_name = g_get_real_name (); if (!user_name || !user_name [0]) user_name = g_get_user_name (); /* keep those strings in sync with the ones in * panel-action-button.c */ /* Translators: this string is used ONLY if you translated * "1" (msgctxt: "panel:showusername") to "1" */ label = g_strdup_printf (_("Log Out %s..."), g_get_user_name ()); /* Translators: this string is used ONLY if you translated * "1" (msgctxt: "panel:showusername") to "1" */ tooltip = g_strdup_printf (_("Log out %s of this session to " "log in as a different user"), user_name); } else { label = NULL; tooltip = NULL; } item = panel_menu_items_create_action_item_full (PANEL_ACTION_LOGOUT, label, tooltip); g_free (label); g_free (tooltip); if (item != NULL) { if (!separator_inserted) { add_menu_separator (menu); separator_inserted = TRUE; } gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); } item = panel_menu_items_create_action_item (PANEL_ACTION_SHUTDOWN); if (item != NULL && !g_getenv("LTSP_CLIENT")) { if (!separator_inserted) add_menu_separator (menu); gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); } }