diff --git a/gnome-panel/main.c b/gnome-panel/main.c index 966b35d..70a31fe 100644 --- a/gnome-panel/main.c +++ b/gnome-panel/main.c @@ -48,6 +48,8 @@ main (int argc, char **argv) GOptionContext *context; GnomeProgram *program; + panel_checkpoint ("Entering main()"); + bindtextdomain (GETTEXT_PACKAGE, GNOMELOCALEDIR); bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); textdomain (GETTEXT_PACKAGE); @@ -56,6 +58,7 @@ main (int argc, char **argv) g_option_context_add_main_entries (context, options, GETTEXT_PACKAGE); + panel_checkpoint ("main(): gnome_program_init()"); program = gnome_program_init ("gnome-panel", VERSION, LIBGNOMEUI_MODULE, argc, argv, @@ -63,26 +66,41 @@ main (int argc, char **argv) GNOME_PROGRAM_STANDARD_PROPERTIES, NULL); + panel_checkpoint ("main(): setting icon name"); gtk_window_set_default_icon_name (PANEL_ICON_PANEL); + panel_checkpoint ("main(): registering with bonobo-activation"); if (!panel_shell_register ()) return -1; + panel_checkpoint ("main(): initializing authentication manager"); gnome_authentication_manager_init (); + panel_checkpoint ("main(): initializing action protocol"); panel_action_protocol_init (); + + panel_checkpoint ("main(): initializing multiscreen"); panel_multiscreen_init (); + + panel_checkpoint ("main(): initializing stock icons"); panel_init_stock_icons_and_items (); + panel_checkpoint ("main(): initializing session"); panel_session_init (); + panel_checkpoint ("main(): setting up gconf monitoring"); gconf_client_add_dir (panel_gconf_get_client (), "/desktop/gnome/interface", GCONF_CLIENT_PRELOAD_NONE, NULL); + panel_checkpoint ("main(): loading global configuration"); panel_global_config_load (); + + panel_checkpoint ("main(): initializing lockdown"); panel_lockdown_init (); + + panel_checkpoint ("main(): loading profile"); panel_profile_load (); /*add forbidden lists to ALL panels*/ @@ -90,8 +108,10 @@ main (int argc, char **argv) (GFunc)panel_widget_add_forbidden, NULL); + panel_checkpoint ("main(): initializing X stuff"); xstuff_init (); + panel_checkpoint ("main(): entering main loop!"); gtk_main (); panel_lockdown_finalize (); diff --git a/gnome-panel/panel-applet-frame.c b/gnome-panel/panel-applet-frame.c index 07688c8..7386b97 100644 --- a/gnome-panel/panel-applet-frame.c +++ b/gnome-panel/panel-applet-frame.c @@ -361,9 +361,11 @@ panel_applet_frame_load (const gchar *iid, CORBA_exception_init (&ev); + panel_checkpoint ("panel_applet_frame_load(): activating %s", iid); bonobo_activation_activate_from_id_async (iid, 0, (BonoboActivationCallback) panel_applet_frame_activated, frame_act, &ev); + panel_checkpoint ("panel_applet_frame_load(): waiting for async activation notification"); } void @@ -1263,6 +1265,8 @@ panel_applet_frame_activated (CORBA_Object object, frame_act = (PanelAppletFrameActivating *) data; frame = frame_act->frame; + panel_checkpoint ("panel_applet_frame_activated(): applet %s is active", frame->priv->iid); + /* according to the source of bonobo control == NULL && no exception can happen, so handle it */ if (error_reason != NULL || object == CORBA_OBJECT_NIL) { diff --git a/gnome-panel/panel-util.c b/gnome-panel/panel-util.c index 08fcd16..d952c1d 100644 --- a/gnome-panel/panel-util.c +++ b/gnome-panel/panel-util.c @@ -39,6 +39,23 @@ #include "launcher.h" #include "panel-icon-names.h" +void +panel_checkpoint (const char *format, ...) +{ + va_list args; + char *str; + char *checkpoint_str; + + va_start (args, format); + str = g_strdup_vprintf (format, args); + checkpoint_str = g_strdup_printf ("MARK: %s: %s", g_get_prgname(), str); + + access (checkpoint_str, F_OK); + + g_free (str); + g_free (checkpoint_str); +} + int panel_ditem_launch (GnomeDesktopItem *item, GList *file_list, diff --git a/gnome-panel/panel-util.h b/gnome-panel/panel-util.h index 0d74d2d..dda340c 100644 --- a/gnome-panel/panel-util.h +++ b/gnome-panel/panel-util.h @@ -13,6 +13,8 @@ typedef void (*UpdateFunction) (gpointer); #define sure_string(s) ((const char *)((s)!=NULL?(s):"")) +void panel_checkpoint (const char *format, ...); + void panel_util_launch_from_key_file (GKeyFile *keyfile, GList *file_list, GdkScreen *screen,