13901N/A+ <menuitem name="Workspace Label Item" verb="ChangeWorkspaceLabel" _label="_Change Workspace Label..."/>
13901N/A <menuitem name="Pager Preferences Item" verb="PagerPreferences" _label="_Preferences"
13901N/A pixtype="stock" pixname="gtk-properties"/>
13901N/A <menuitem name="Pager Help Item" verb="PagerHelp" _label="_Help"
13901N/A -I$(top_builddir)/libpanel-applet \
13901N/A -DGNOMELOCALEDIR=\""$(prefix)/$(DATADIRNAME)/locale"\" \
13901N/A+#define WNCK_I_KNOW_THIS_IS_UNSTABLE
13901N/A+ * No 64-bit version of libwnck so we can get away with hardcoding
13901N/A+ * to a single path on this occasion
13901N/A+_wnck_use_trusted_extensions (void)
13901N/A+ * Sun Trusted Extensions (tm) for Solaris (tm) support. (Damn I should be a lawyer).
13901N/A+ * It is necessary to use dlopen because the label aware extensions to libwnck work
13901N/A+ * only on systems with the trusted extensions installed and with the SUN_TSOL
13901N/A+ static gpointer tsol_handle = NULL;
13901N/A+ static gpointer xtsol_handle = NULL;
13901N/A+ static gpointer gnometsol_handle = NULL;
13901N/A+ if (getenv ("TRUSTED_SESSION") == NULL) {
13901N/A+ xtsol_handle = dlopen_xtsol ();
13901N/A+ if (tsol_handle && xtsol_handle) {
13901N/A+ libtsol_blequal = (tsol_blequal) dlsym (tsol_handle, "blequal");
13901N/A+ libtsol_label_to_str = (tsol_label_to_str) dlsym (tsol_handle, "label_to_str");
13901N/A+ libtsol_str_to_label = (tsol_str_to_label) dlsym (tsol_handle, "str_to_label");
13901N/A+ libtsol_m_label_dup = (tsol_m_label_dup) dlsym (tsol_handle, "m_label_dup");
13901N/A+ libtsol_m_label_free = (tsol_m_label_free) dlsym (tsol_handle, "m_label_free");
13901N/A+ /* Other misc. libtsol functions */
13901N/A+ libtsol_blminimum = (tsol_blminimum) dlsym (tsol_handle, "blminimum");
13901N/A+ libtsol_blmaximum = (tsol_blmaximum) dlsym (tsol_handle, "blmaximum");
13901N/A+ libtsol_blinrange = (tsol_blinrange) dlsym (tsol_handle, "blinrange");
13901N/A+ libtsol_getuserrange = (tsol_getuserrange) dlsym (tsol_handle, "getuserrange");
13901N/A+ libtsol_blabel_alloc = (tsol_blabel_alloc) dlsym (tsol_handle, "blabel_alloc");
13901N/A+ libtsol_blabel_free = (tsol_blabel_free) dlsym (tsol_handle, "blabel_free");
13901N/A+ libtsol_bsllow = (tsol_bsllow) dlsym (tsol_handle, "bsllow");
13901N/A+ libtsol_bslhigh = (tsol_bslhigh) dlsym (tsol_handle, "bslhigh");
13901N/A+ libxtsol_XTSOLgetClientLabel = (xtsol_XTSOLgetClientLabel) dlsym (xtsol_handle,
13901N/A+ libxtsol_XTSOLIsWindowTrusted = (xtsol_XTSOLIsWindowTrusted) dlsym (xtsol_handle,
13901N/A+ if (libtsol_label_to_str == NULL ||
13901N/A+ libtsol_str_to_label == NULL ||
13901N/A+ libtsol_m_label_dup == NULL ||
13901N/A+ libtsol_m_label_free == NULL ||
13901N/A+ libtsol_getuserrange == NULL ||
13901N/A+ libtsol_blabel_alloc == NULL ||
13901N/A+ libtsol_blabel_free == NULL ||
13901N/A+ libxtsol_XTSOLgetClientLabel == NULL ||
13901N/A+ libxtsol_XTSOLIsWindowTrusted == NULL) {
13901N/A+ gnometsol_handle = dlopen_gnometsol ();
13901N/A+ if (gnometsol_handle != NULL) {
13901N/A+ libgnometsol_gnome_label_builder_new =
13901N/A+ (gnometsol_gnome_label_builder_new) dlsym (gnometsol_handle,
13901N/A+ libgnometsol_gnome_label_builder_get_type =
13901N/A+ (gnometsol_gnome_label_builder_get_type) dlsym (gnometsol_handle,
13901N/A+ "gnome_label_builder_get_type");
13901N/A+ if (libgnometsol_gnome_label_builder_new == NULL ||
13901N/A+ libgnometsol_gnome_label_builder_get_type == NULL)
13901N/A+ trusted = ((tsol_handle != NULL) && (xtsol_handle != NULL) && (gnometsol_handle != NULL)) ? 1 : 0;
13901N/A+ return trusted ? TRUE : FALSE;
13901N/A+ static char *min_label = NULL;
13901N/A+ min_label = (char *) getenv ("USER_MIN_SL");
13901N/A+ static char *max_label = NULL;
13901N/A+ max_label = (char *) getenv ("USER_MAX_SL");
13901N/A+static gboolean tsol_win_selector_label_expose_event (GtkWidget *widget,
13901N/A+ WnckWindow *window = (WnckWindow *) data;
13901N/A+ GdkGC *tmp_gc = gdk_gc_new (widget->window);
13901N/A+ gdk_gc_set_rgb_fg_color (tmp_gc, wnck_window_get_label_color (window));
13901N/A+ gdk_draw_rectangle (widget->window,
13901N/A+ gdk_draw_rectangle (widget->window,
13901N/A+window_menu_create_label_indicator (WnckWindow *window,
13901N/A+ g_signal_connect (G_OBJECT (da), "expose_event",
13901N/A+ G_CALLBACK (tsol_win_selector_label_expose_event),
13901N/A+ gtk_widget_set_size_request (da, 5, -1);
13901N/A+ hbox = gtk_hbox_new (FALSE, 4);
13901N/A+ gtk_container_add (GTK_CONTAINER (hbox), da);
13901N/A+ gtk_container_add (GTK_CONTAINER (hbox), image);
13901N/A+#define WNCK_I_KNOW_THIS_IS_UNSTABLE
13901N/A+typedef int (*tsol_blequal) (const m_label_t *label1, const m_label_t *label2);
13901N/A+typedef int (*tsol_label_to_str) (const m_label_t *label, char **string,
13901N/A+ const m_label_str_t conversion_type,
13901N/A+typedef int (*tsol_str_to_label) (const char *string, m_label_t **label,
13901N/A+ const m_label_type_t label_type, uint_t flags,
13901N/A+typedef void (*tsol_m_label_dup) (m_label_t **dst, const m_label_t *src);
13901N/A+typedef void (*tsol_m_label_free) (m_label_t *label);
13901N/A+/* Other misc. libtsol functions that seem to be stable */
13901N/A+typedef blrange_t* (*tsol_getuserrange) (const char *username);
13901N/A+typedef int (*tsol_blinrange) (const m_label_t *label,
13901N/A+typedef void (*tsol_blminimum) (m_label_t *minimum_label,
13901N/A+ const m_label_t *bounding_label);
13901N/A+typedef void (*tsol_blmaximum) (m_label_t *maximum_label,
13901N/A+ const m_label_t *bounding_label);
13901N/A+typedef m_label_t* (*tsol_blabel_alloc) (void);
13901N/A+typedef void (*tsol_blabel_free) (m_label_t *label_p);
13901N/A+typedef void (*tsol_bsllow) (m_label_t *label);
13901N/A+typedef void (*tsol_bslhigh) (m_label_t *label);
13901N/A+typedef Status (*xtsol_XTSOLgetClientLabel) (Display *dpy, XID xid,
13901N/A+typedef Bool (*xtsol_XTSOLIsWindowTrusted) (Display *dpy, Window win);
13901N/A+extern gboolean _trusted_extensions_initialised;
13901N/A+typedef GtkWidget* (*gnometsol_gnome_label_builder_new) (char *msg,
13901N/A+ blevel_t *upper, blevel_t *lower, int mode);
13901N/A+typedef GType (*gnometsol_gnome_label_builder_get_type) (void);
13901N/A+tsol_label_to_str libtsol_label_to_str;
13901N/A+tsol_str_to_label libtsol_str_to_label;
13901N/A+tsol_m_label_dup libtsol_m_label_dup;
13901N/A+tsol_m_label_free libtsol_m_label_free;
13901N/A+/* Other misc. libtsol functions */
13901N/A+tsol_blminimum libtsol_blminimum;
13901N/A+tsol_blmaximum libtsol_blmaximum;
13901N/A+tsol_blinrange libtsol_blinrange;
13901N/A+tsol_getuserrange libtsol_getuserrange;
13901N/A+tsol_blabel_alloc libtsol_blabel_alloc;
13901N/A+tsol_blabel_free libtsol_blabel_free;
13901N/A+xtsol_XTSOLgetClientLabel libxtsol_XTSOLgetClientLabel;
13901N/A+xtsol_XTSOLIsWindowTrusted libxtsol_XTSOLIsWindowTrusted;
13901N/A+gnometsol_gnome_label_builder_new libgnometsol_gnome_label_builder_new;
13901N/A+gnometsol_gnome_label_builder_get_type libgnometsol_gnome_label_builder_get_type;
13901N/A+gboolean _wnck_use_trusted_extensions ();
13901N/A+const char* _wnck_get_min_label ();
13901N/A+const char* _wnck_get_max_label ();
13901N/A+GtkWidget* window_menu_create_label_indicator (WnckWindow *window,
15658N/A #define WORKSPACE_SWITCHER_ICON "gnome-panel-workspace-switcher"
13901N/A+gboolean ugly_showing_lbuilder_global_which_sucks_fix_me = FALSE;
13901N/A+static void tsol_workspace_created (WnckScreen *screen,
13901N/A+static void role_changed (WnckWorkspace *workspace,
13901N/A+static void changed_workspace (WnckScreen *screen,
13901N/A+ WnckWorkspace *previously_active_space,
13901N/A+static void workspace_label_dialog (BonoboUIComponent *uic,
13901N/A static void display_properties_dialog (BonoboUIComponent *uic,
13901N/A G_CALLBACK (window_manager_changed),
13901N/A+ if (_wnck_use_trusted_extensions ()) {
13901N/A+ * Monitor all events that might require the workspace label menu
13901N/A+ wscount = wnck_screen_get_workspace_count (pager->screen);
13901N/A+ for (i = 0; i < wscount; i++) {
13901N/A+ space = wnck_screen_get_workspace (pager->screen, i);
13901N/A+ wncklet_connect_while_alive (G_OBJECT (space), "role_changed",
13901N/A+ wncklet_connect_while_alive (G_OBJECT (pager->screen),
13901N/A+ G_CALLBACK (tsol_workspace_created),
13901N/A+ wncklet_connect_while_alive (G_OBJECT (pager->screen),
13901N/A+ G_CALLBACK (changed_workspace),
13901N/A+ * Trigger the active_workspace_changed callback function manually
13901N/A+ changed_workspace (pager->screen,
13901N/A+ wnck_screen_get_active_workspace (pager->screen),
13901N/A static const BonoboUIVerb pager_menu_verbs [] = {
13901N/A+ BONOBO_UI_UNSAFE_VERB ("ChangeWorkspaceLabel", workspace_label_dialog),
13901N/A BONOBO_UI_UNSAFE_VERB ("PagerPreferences", display_properties_dialog),
13901N/A BONOBO_UI_UNSAFE_VERB ("PagerHelp", display_help_dialog),
13901N/A BONOBO_UI_UNSAFE_VERB ("PagerAbout", display_about_dialog),
13901N/A+ if (!_wnck_use_trusted_extensions ()) {
13901N/A+ BonoboUIComponent *popup_component;
13901N/A+ popup_component = panel_applet_get_popup_component (PANEL_APPLET (pager->applet));
13901N/A+ bonobo_ui_component_set_prop (popup_component,
13901N/A update_properties_for_wm (pager);
13901N/A+ * DON'T ever call this from outside any code that has first done
13901N/A+ * a runtime trusted extension check!!! There is no point anyway.
13901N/A+lbuilder_response_cb (GtkDialog *dialog, gint id, gpointer data)
13901N/A+ if (!_wnck_use_trusted_extensions ())
13901N/A+ * Stops the GNOME_LABEL_BUILDER cast calling
13901N/A+ * gnome_label_builder_get_type() directly
13901N/A+#define GNOME_TYPE_LABEL_BUILDER (libgnometsol_gnome_label_builder_get_type ())
13901N/A+ GnomeLabelBuilder *lbuilder = GNOME_LABEL_BUILDER (dialog);
13901N/A+ space = WNCK_WORKSPACE (data);
13901N/A+ g_object_get (G_OBJECT (lbuilder), "sl", &sl, NULL);
13901N/A+ /* I should probably check the return code here but the label is
13901N/A+ * coming from an internal function */
13901N/A+ error = libtsol_label_to_str (sl, &label, M_INTERNAL, LONG_NAMES);
13901N/A+ wnck_workspace_change_label (space, label);
13901N/A+ gtk_widget_destroy (GTK_WIDGET (lbuilder));
13901N/A+ ugly_showing_lbuilder_global_which_sucks_fix_me = FALSE;
13901N/A+ /* show help and return control */
13901N/A+ /* We dont want to change the workspace label so bye-bye */
13901N/A+ gtk_widget_destroy (GTK_WIDGET (lbuilder));
13901N/A+ ugly_showing_lbuilder_global_which_sucks_fix_me = FALSE;
13901N/A+ /* We shouldn't really have got here */
13901N/A+tsol_workspace_created (WnckScreen *screen,
13901N/A+ if (!_wnck_use_trusted_extensions ())
13901N/A+ g_signal_connect (G_OBJECT (space), "role_changed",
13901N/A+role_changed (WnckWorkspace *workspace,
13901N/A+ if (!_wnck_use_trusted_extensions ())
13901N/A+ rolewsindex = wnck_workspace_get_number (workspace);
13901N/A+ activewsindex = wnck_workspace_get_number (wnck_screen_get_active_workspace (pager->screen));
13901N/A+ * Ignore role changes that occured outside the active workspace.
13901N/A+ * The menu item is always relative to the active workspace
13901N/A+ if (rolewsindex == activewsindex)
13901N/A+ changed_workspace (pager->screen,
13901N/A+ wnck_screen_get_active_workspace (pager->screen),
13901N/A+changed_workspace (WnckScreen *screen,
13901N/A+ WnckWorkspace *previously_active_space,
13901N/A+ BonoboUIComponent *popup_component;
13901N/A+ m_label_t *upper_clear = NULL;
13901N/A+ if (!_wnck_use_trusted_extensions ())
13901N/A+ workspace = wnck_screen_get_active_workspace (screen);
13901N/A+ error = wnck_workspace_get_label_range (workspace, &lower_bound,
13901N/A+ /* Convert the lower and upper bounds to internal binary labels */
13901N/A+ if (libtsol_str_to_label (lower_bound, &lower_sl, MAC_LABEL, L_DEFAULT,
13901N/A+ g_warning ("Workspace has invalid label range min value");
13901N/A+ if (libtsol_str_to_label (upper_bound, &upper_clear, USER_CLEAR, L_DEFAULT,
13901N/A+ g_warning ("Workspace has invalid label range clearance value");
13901N/A+ libtsol_m_label_free (lower_sl);
13901N/A+ popup_component = panel_applet_get_popup_component (PANEL_APPLET (pager->applet));
13901N/A+ if (libtsol_blequal (lower_sl, upper_clear))
13901N/A+ libtsol_m_label_free (lower_sl);
13901N/A+ libtsol_m_label_free (upper_clear);
13901N/A+ bonobo_ui_component_set_prop (popup_component,
13901N/A+ "sensitive", menusensitivity ? "1" : "0",
13901N/A+workspace_label_dialog (BonoboUIComponent *uic,
13901N/A+ m_label_t *upper_clear = NULL;
13901N/A+ WnckScreen *screen = pager->screen;
13901N/A+ if (ugly_showing_lbuilder_global_which_sucks_fix_me) return;
13901N/A+ if (!_wnck_use_trusted_extensions ())
13901N/A+ wspace = wnck_screen_get_active_workspace (screen);
13901N/A+ error = wnck_workspace_get_label_range (wspace, &lower_bound,
13901N/A+ /* Convert the lower and upper bounds to internal binary labels */
13901N/A+ if (libtsol_str_to_label (lower_bound, &lower_sl, MAC_LABEL, L_DEFAULT,
13901N/A+ g_warning ("Workspace has invalid label range minimum label");
13901N/A+ if (libtsol_str_to_label (upper_bound, &upper_clear, USER_CLEAR, L_DEFAULT,
13901N/A+ g_warning ("Workspace has invalid label range");
13901N/A+ libtsol_m_label_free (lower_sl);
13901N/A+ /* Get the current workspace label. */
13901N/A+ cur_ws_label = wnck_workspace_get_label (wspace);
13901N/A+ /* Convert the workspace's current label to binary type */
13901N/A+ if (libtsol_str_to_label (cur_ws_label, &ws_sl, MAC_LABEL, L_DEFAULT,
13901N/A+ g_warning ("Workspace has an invalid label");
13901N/A+ g_warning ("No workspace label - defaulting to lowest in range");
13901N/A+ libtsol_m_label_dup (&ws_sl, lower_sl);
13901N/A+ lbuilder = libgnometsol_gnome_label_builder_new(_("Changing Workspace Label"),
13901N/A+ if (gtk_widget_has_screen (pager->applet)) {
13901N/A+ gtk_window_set_screen (GTK_WINDOW (lbuilder),
13901N/A+ gtk_widget_get_screen (pager->applet));
13901N/A+ g_signal_connect (G_OBJECT (lbuilder), "response",
13901N/A+ G_CALLBACK (lbuilder_response_cb), (gpointer) wspace);
13901N/A+ gtk_widget_show_all (lbuilder);
13901N/A+ ugly_showing_lbuilder_global_which_sucks_fix_me = TRUE;
13901N/A+ /* GAH, why do I have to do this after the show? */
13901N/A+ g_object_set (G_OBJECT (lbuilder), "sl", ws_sl, NULL);
13901N/A+ libtsol_m_label_free (lower_sl);
13901N/A+ libtsol_m_label_free (upper_clear);
13901N/A display_properties_dialog (BonoboUIComponent *uic,
16340N/A+/* Define when GNOME Trusted Solaris Extension lib libgnometsol detected. */
16340N/A /* Define to 1 if you have the `_NSGetEnviron' function. */
13901N/A AC_SUBST(LIBPANEL_APPLET_CFLAGS)
13901N/A+PKG_CHECK_EXISTS(libgnometsol >= 0.5, AC_DEFINE(HAVE_LIBGNOMETSOL,,[Building with GNOMETSOL support]),,)
15658N/A PKG_CHECK_MODULES(FISH, gtk+-2.0 >= $GTK_REQUIRED libglade-2.0 >= $LIBGLADE_REQUIRED cairo >= $CAIRO_REQUIRED)
16340N/A gdk_app_launch_context_set_timestamp (context, timestamp);
16340N/A- retval = g_app_info_launch_uris (appinfo, uris,
16340N/A+ if (gnome_desktop_tsol_is_multi_label_session ()) {
16340N/A+ char *cmd = g_strdup_printf ("%d:%s",
16340N/A+ gdk_screen_get_number (screen),
16340N/A+ g_app_info_get_commandline (appinfo));
16340N/A+ gnome_desktop_tsol_proxy_app_launch (cmd);
16340N/A+ retval = g_app_info_launch_uris (appinfo, uris,
13901N/A screen = gtk_widget_get_screen (widget);
13901N/A+ if (gnome_desktop_tsol_is_multi_label_session ()) {
16340N/A+ char *cmd = g_strdup_printf ("%d:gnome-search-tool", gdk_screen_get_number (screen));
13901N/A+ gnome_desktop_tsol_proxy_app_launch (cmd);
13901N/A screen = gtk_widget_get_screen (GTK_WIDGET (widget));
13901N/A+ if (gnome_desktop_tsol_is_multi_label_session ()) {
13901N/A+ char *cmd = g_strdup_printf ("%d:nautilus-connect-server", gdk_screen_get_number (screen));
13901N/A+ gnome_desktop_tsol_proxy_app_launch (cmd);
13901N/A gdk_spawn_command_line_on_screen (screen, "nautilus-connect-server",
15159N/A+ /* TJDS - if MLS and has not admin_high clearance do not
15159N/A+ * display the following applets in the mnenu list.
15159N/A+ if (gnome_desktop_tsol_is_multi_label_session () &&
15159N/A+ !gnome_desktop_tsol_is_clearance_admin_high() &&
15159N/A+ (strcmp (info->iid, "OAFIID:GNOME_StickyNotesApplet")==0 ||
15159N/A+ strcmp (info->iid, "OAFIID:Deskbar_Applet")==0 ||
15159N/A+ strcmp (info->iid, "OAFIID:GNOME_WebEyes")==0 ||
15159N/A+ strcmp (info->iid, "OAFIID:GNOME_MailcheckApplet")==0 ||
15159N/A+ strcmp (info->iid, "OAFIID:GNOME_Panel_TrashApplet")==0 ||
15159N/A+ strcmp (info->iid, "OAFIID:GNOME_TSClientApplet")==0 ||
16621N/A+ strcmp (info->iid, "OAFIID:GNOME_QuickLoungeApplet")==0 ||
17026N/A+ strcmp (info->iid, "OAFIID:GNOME_MultiLoadApplet")==0 ||
17026N/A+ strcmp (info->iid, "OAFIID:GNOME_NetStatusApplet")==0 ||
15159N/A+ strcmp (info->iid, "OAFIID:GNOME_PilotApplet")==0))
15159N/A applet = g_new0 (PanelAddtoItemInfo, 1);
15159N/A applet->type = PANEL_ADDTO_APPLET;
15159N/A applet->name = g_strdup (name);
16340N/A if (!applet_iid || !applet_iid[0])
16340N/A- panel_applet_frame_load (applet_iid, panel_widget,
16340N/A+ /* TJDS - This is to make sure that when user is logged into Multilevel
16340N/A+ * Trusted session, these applets will not be loaded onto the panel.
16340N/A+ if (gnome_desktop_tsol_is_multi_label_session () &&
16340N/A+ !gnome_desktop_tsol_is_clearance_admin_high() &&
16340N/A+ (strcmp (applet_iid, "OAFIID:GNOME_StickyNotesApplet")==0 ||
16340N/A+ strcmp (applet_iid, "OAFIID:Deskbar_Applet")==0 ||
16340N/A+ strcmp (applet_iid, "OAFIID:GNOME_WebEyes")==0 ||
16340N/A+ strcmp (applet_iid, "OAFIID:GNOME_MailcheckApplet")==0 ||
16340N/A+ strcmp (applet_iid, "OAFIID:GNOME_Panel_TrashApplet")==0 ||
16340N/A+ strcmp (applet_iid, "OAFIID:GNOME_TSClientApplet")==0 ||
16621N/A+ strcmp (applet_iid, "OAFIID:GNOME_QuickLoungeApplet")==0 ||
17026N/A+ strcmp (applet_iid, "OAFIID:GNOME_MultiLoadApplet")==0 ||
17026N/A+ strcmp (applet_iid, "OAFIID:GNOME_NetStatusApplet")==0 ||
16340N/A+ strcmp (applet_iid, "OAFIID:GNOME_PilotApplet")==0))
16340N/A+ panel_applet_frame_load (applet_iid, panel_widget,
17026N/A activate_home_uri (GtkWidget *menuitem,
17026N/A+ if (gnome_desktop_tsol_is_multi_label_session ()) {
17026N/A+ screen = gtk_window_get_screen (GTK_WINDOW (menuitem));
17026N/A+ cmd = g_strdup_printf ("%d:nautilus file://%s",
17026N/A+ gdk_screen_get_number (screen),
17026N/A+ gnome_desktop_tsol_proxy_app_launch (cmd);
17026N/A activate_path (menuitem, g_get_home_dir ());
17026N/A activate_desktop_uri (GtkWidget *menuitem,
17026N/A+ if (gnome_desktop_tsol_is_multi_label_session ()) {
17026N/A+ screen = gtk_window_get_screen (GTK_WINDOW (menuitem));
17026N/A+ cmd = g_strdup_printf ("%d:nautilus file://%s",
17026N/A+ gdk_screen_get_number (screen),
17026N/A+ g_get_user_special_dir (G_USER_DIRECTORY_DESKTOP));
17026N/A+ gnome_desktop_tsol_proxy_app_launch (cmd);
17026N/A g_get_user_special_dir (G_USER_DIRECTORY_DESKTOP));
17026N/A- panel_place_menu_item_append_gtk_bookmarks (places_menu);
17026N/A- add_menu_separator (places_menu);
17026N/A+ if (!gnome_desktop_tsol_is_multi_label_session ()) {
17026N/A+ panel_place_menu_item_append_gtk_bookmarks (places_menu);
17026N/A+ add_menu_separator (places_menu);
17026N/A gconf_name = gconf_client_get_string (panel_gconf_get_client (),
17026N/A- panel_place_menu_item_append_local_gio (place_item, places_menu);
17026N/A- add_menu_separator (places_menu);
17026N/A+ if (!gnome_desktop_tsol_is_multi_label_session ()) {
17026N/A+ panel_place_menu_item_append_local_gio (place_item, places_menu);
17026N/A+ add_menu_separator (places_menu);
17026N/A panel_menu_items_append_from_desktop (places_menu,
17026N/A ditem = gnome_desktop_item_new_from_file (path, 0, NULL);
17026N/A gnome_desktop_item_unref (ditem);
17026N/A return; /* Don't launch as it's a forbidden desktop file */
17026N/A+ if (gnome_desktop_tsol_is_multi_label_session ()) {
17056N/A+ gnome_desktop_item_launch (ditem, NULL, GNOME_DESKTOP_ITEM_LAUNCH_ONLY_ONE, &error);
17056N/A+ g_warning ("Failed to launch for %s: %s\n",
17026N/A+ panel_launch_desktop_file (path, menuitem_to_screen (menuitem), NULL);
17026N/A gnome_desktop_item_unref (ditem);
17026N/A- panel_launch_desktop_file (path, menuitem_to_screen (menuitem), NULL);
15159N/A+ screen = gtk_window_get_screen (GTK_WINDOW (dialog->run_dialog));
15159N/A+ if (gnome_desktop_tsol_is_multi_label_session ()) {
15159N/A+ tsolcmd = g_strdup_printf ("%d:%s",
15159N/A+ gdk_screen_get_number (screen), command);
15159N/A+ gnome_desktop_tsol_proxy_app_launch (tsolcmd);
15658N/A if (!command_is_executable (locale_command, &argc, &argv))