void panel_session_init (void) { EggSMClientMode mode; EggSMClient *client; /* Explicitly tell the session manager we're ready -- we don't do it * before. Note: this depends on setting the mode to DISABLED early * during startup. */ if (do_not_restart || getenv ("MATE_PANEL_DEBUG")) mode = EGG_SM_CLIENT_MODE_NO_RESTART; else mode = EGG_SM_CLIENT_MODE_NORMAL; egg_sm_client_set_mode (mode); client = egg_sm_client_get (); g_signal_connect (client, "quit", G_CALLBACK (panel_session_handle_quit), NULL); /* We don't want the WM to try and save/restore our * window position */ gdk_set_sm_client_id (NULL); }
static void egg_sm_client_post_args_parse (GnomeProgram *app, GnomeModuleInfo *mod_info) { if (desktop_file) egg_set_desktop_file (desktop_file); egg_sm_client_set_mode (mode); }
void panel_session_do_not_restart (void) { do_not_restart = TRUE; if (egg_sm_client_get_mode () != EGG_SM_CLIENT_MODE_DISABLED) egg_sm_client_set_mode (EGG_SM_CLIENT_MODE_NO_RESTART); }
int main (int argc, char **argv) { char *desktopfile; GOptionContext *context; GError *error; bindtextdomain (GETTEXT_PACKAGE, MATELOCALEDIR); bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); textdomain (GETTEXT_PACKAGE); /* We will register explicitly when we're ready -- see panel-session.c */ egg_sm_client_set_mode (EGG_SM_CLIENT_MODE_DISABLED); g_set_prgname ("mate-panel"); desktopfile = panel_g_lookup_in_applications_dirs ("mate-panel.desktop"); if (desktopfile) { egg_set_desktop_file (desktopfile); g_free (desktopfile); } context = g_option_context_new (""); g_option_context_add_group (context, egg_sm_client_get_option_group ()); g_option_context_add_group (context, gtk_get_option_group (TRUE)); g_option_context_add_main_entries (context, options, GETTEXT_PACKAGE); gtk_init (&argc, &argv); error = NULL; if (!g_option_context_parse (context, &argc, &argv, &error)) { g_printerr ("%s\n", error->message); g_error_free (error); g_option_context_free (context); return 1; } g_option_context_free (context); /* reset the configuration and exit. */ if (reset == TRUE) { panel_reset(); return 0; } if (!egg_get_desktop_file ()) { g_set_application_name (_("Panel")); gtk_window_set_default_icon_name (PANEL_ICON_PANEL); } if (!panel_shell_register (replace)) { panel_cleanup_do (); return -1; } panel_action_protocol_init (); panel_multiscreen_init (); panel_init_stock_icons_and_items (); mateconf_client_add_dir (panel_mateconf_get_client (), "/desktop/mate/interface", MATECONF_CLIENT_PRELOAD_NONE, NULL); panel_global_config_load (); panel_lockdown_init (); panel_profile_load (); /*add forbidden lists to ALL panels*/ g_slist_foreach (panels, (GFunc)panel_widget_add_forbidden, NULL); xstuff_init (); /* Flush to make sure our struts are seen by everyone starting * immediate after (eg, the caja desktop). */ gdk_flush (); /* Do this at the end, to be sure that we're really ready when * connecting to the session manager */ panel_session_init (); gtk_main (); panel_lockdown_finalize (); mateconf_client_remove_dir (panel_mateconf_get_client (), "/desktop/mate/interface", NULL); panel_cleanup_do (); return 0; }
int main (int argc, char **argv) { char *desktopfile; GOptionContext *context; GError *error; bindtextdomain (GETTEXT_PACKAGE, GNOMELOCALEDIR); bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); textdomain (GETTEXT_PACKAGE); /* We will register explicitly when we're ready -- see panel-session.c */ egg_sm_client_set_mode (EGG_SM_CLIENT_MODE_DISABLED); g_set_prgname ("gnome-panel"); desktopfile = panel_g_lookup_in_applications_dirs ("gnome-panel.desktop"); if (desktopfile) { egg_set_desktop_file (desktopfile); g_free (desktopfile); } context = g_option_context_new (""); g_option_context_add_group (context, egg_sm_client_get_option_group ()); g_option_context_add_group (context, gtk_get_option_group (TRUE)); g_option_context_add_main_entries (context, options, GETTEXT_PACKAGE); gtk_init (&argc, &argv); error = NULL; if (!g_option_context_parse (context, &argc, &argv, &error)) { g_printerr ("%s\n", error->message); g_error_free (error); g_option_context_free (context); return 1; } g_option_context_free (context); if (!egg_get_desktop_file ()) { g_set_application_name (_("Panel")); gtk_window_set_default_icon_name (PANEL_ICON_PANEL); } if (!panel_shell_register (replace)) { panel_cleanup_do (); return 1; } panel_action_protocol_init (); panel_multiscreen_init (); panel_init_stock_icons_and_items (); if (!panel_layout_load ()) { panel_cleanup_do (); return 1; } xstuff_init (); /* Flush to make sure our struts are seen by everyone starting * immediate after (eg, the nautilus desktop). */ gdk_flush (); /* Do this at the end, to be sure that we're really ready when * connecting to the session manager */ panel_session_init (); gtk_main (); panel_cleanup_do (); return 0; }
int main (int argc, char **argv) { char *desktopfile; GOptionContext *context; GError *error; bindtextdomain (GETTEXT_PACKAGE, MATELOCALEDIR); bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); textdomain (GETTEXT_PACKAGE); /* We will register explicitly when we're ready -- see panel-session.c */ egg_sm_client_set_mode (EGG_SM_CLIENT_MODE_DISABLED); g_set_prgname ("mate-panel"); desktopfile = panel_g_lookup_in_applications_dirs ("mate-panel.desktop"); if (desktopfile) { egg_set_desktop_file (desktopfile); g_free (desktopfile); } context = g_option_context_new (""); g_option_context_add_group (context, egg_sm_client_get_option_group ()); g_option_context_add_group (context, gtk_get_option_group (TRUE)); g_option_context_add_main_entries (context, options, GETTEXT_PACKAGE); gtk_init (&argc, &argv); error = NULL; if (!g_option_context_parse (context, &argc, &argv, &error)) { g_printerr ("%s\n", error->message); g_error_free (error); g_option_context_free (context); return 1; } g_option_context_free (context); /* set the default layout */ if (layout != NULL && layout[0] != 0) { GSettings *settings; settings = g_settings_new (PANEL_SCHEMA); g_settings_set_string (settings, PANEL_DEFAULT_LAYOUT, layout); g_object_unref (settings); g_message ("Panel layout set to '%s'", layout); /* exit, except if reset argument is given */ if (!reset) return 0; } /* reset the configuration and exit. */ if (reset == TRUE) { panel_reset(); return 0; } /* open the run dialog and exit */ if (run_dialog == TRUE) { panel_multiscreen_init (); panel_global_config_load (); panel_lockdown_init (); panel_profile_settings_load (); panel_run_dialog_present (gdk_screen_get_default (), gtk_get_current_event_time ()); panel_run_dialog_quit_on_destroy (); gtk_main (); panel_lockdown_finalize (); panel_cleanup_do (); return 0; } if (!egg_get_desktop_file ()) { g_set_application_name (_("Panel")); gtk_window_set_default_icon_name (PANEL_ICON_PANEL); } if (!panel_shell_register (replace)) { panel_cleanup_do (); return -1; } panel_action_protocol_init (); panel_multiscreen_init (); panel_init_stock_icons_and_items (); panel_global_config_load (); panel_lockdown_init (); panel_profile_load (); /*add forbidden lists to ALL panels*/ g_slist_foreach (panels, (GFunc)panel_widget_add_forbidden, NULL); xstuff_init (); /* Flush to make sure our struts are seen by everyone starting * immediate after (eg, the caja desktop). */ gdk_flush (); /* Do this at the end, to be sure that we're really ready when * connecting to the session manager */ panel_session_init (); gtk_main (); panel_lockdown_finalize (); panel_cleanup_do (); return 0; }