diff options
author | Matthew Barnes <mbarnes@redhat.com> | 2009-09-01 00:53:52 +0800 |
---|---|---|
committer | Matthew Barnes <mbarnes@redhat.com> | 2009-09-01 00:53:52 +0800 |
commit | f5991437c3e620708f1701310bd1e67b40ca3b42 (patch) | |
tree | b8fbe876e5c5eb0dd0e96d6505aabe898b09c6fb /modules/calendar/e-cal-shell-backend.c | |
parent | cd0112576878cb5de3930835ff09f1562e9f5c10 (diff) | |
download | gsoc2013-evolution-f5991437c3e620708f1701310bd1e67b40ca3b42.tar gsoc2013-evolution-f5991437c3e620708f1701310bd1e67b40ca3b42.tar.gz gsoc2013-evolution-f5991437c3e620708f1701310bd1e67b40ca3b42.tar.bz2 gsoc2013-evolution-f5991437c3e620708f1701310bd1e67b40ca3b42.tar.lz gsoc2013-evolution-f5991437c3e620708f1701310bd1e67b40ca3b42.tar.xz gsoc2013-evolution-f5991437c3e620708f1701310bd1e67b40ca3b42.tar.zst gsoc2013-evolution-f5991437c3e620708f1701310bd1e67b40ca3b42.zip |
Get EConfig and EEvent hooks working again.
There were a number of problems:
- Walk the GType tree to find EPluginHook subclasses, instead of
just registering the immediate children.
- Some EConfig and EEvent subclasses were not being configured
properly (particularly the mail and calendar subclasses).
- Add preference window pages after the main loop starts to make
sure all plugins and plugin hooks are installed first.
Diffstat (limited to 'modules/calendar/e-cal-shell-backend.c')
-rw-r--r-- | modules/calendar/e-cal-shell-backend.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/modules/calendar/e-cal-shell-backend.c b/modules/calendar/e-cal-shell-backend.c index 5149574323..6511d0e453 100644 --- a/modules/calendar/e-cal-shell-backend.c +++ b/modules/calendar/e-cal-shell-backend.c @@ -523,11 +523,13 @@ cal_shell_backend_init_importers (void) e_import_class_add_importer (import_class, importer, NULL, NULL); } -static void +static gboolean cal_shell_backend_init_preferences (EShell *shell) { GtkWidget *preferences_window; + /* This is a main loop idle callback. */ + preferences_window = e_shell_get_preferences_window (shell); e_preferences_window_add_page ( @@ -537,6 +539,8 @@ cal_shell_backend_init_preferences (EShell *shell) _("Calendar and Tasks"), calendar_prefs_dialog_new (shell), 600); + + return FALSE; } static gboolean @@ -770,10 +774,11 @@ cal_shell_backend_constructed (GObject *object) cal_shell_backend_init_importers (); - /* Initialize settings before initializing preferences, - * since the preferences bind to the shell settings. */ e_cal_shell_backend_init_settings (shell); - cal_shell_backend_init_preferences (shell); + + /* Initialize preferences after the main loop starts so + * that all EPlugins and EPluginHooks are loaded first. */ + g_idle_add ((GSourceFunc) cal_shell_backend_init_preferences, shell); } static void |