diff options
Diffstat (limited to 'shell')
-rw-r--r-- | shell/e-shell-view.c | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/shell/e-shell-view.c b/shell/e-shell-view.c index caea4bb6d6..5a75ad74c2 100644 --- a/shell/e-shell-view.c +++ b/shell/e-shell-view.c @@ -71,12 +71,11 @@ e_shell_view_setup_shortcut_display (EShellView *eshell_view) } static GtkWidget * -get_view (EFolder *efolder) +get_view (EFolder *efolder, Bonobo_UIHandler uih) { GtkWidget *w = NULL; - BonoboControl control; EFolderType e_folder_type; - + BonoboControlFrame *control_frame; @@ -95,7 +94,7 @@ get_view (EFolder *efolder) case E_FOLDER_MAIL : w = bonobo_widget_new_control ("control:evolution-mail", - NULL); + uih ); break; default : @@ -103,6 +102,10 @@ get_view (EFolder *efolder) e_folder_get_description (efolder)); } + control_frame = bonobo_widget_get_control_frame (w); + bonobo_control_frame_set_autoactivate (control_frame, FALSE); + bonobo_control_frame_control_activate (control_frame); + if (w) gtk_widget_show (w); return w; @@ -112,7 +115,12 @@ get_view (EFolder *efolder) void e_shell_view_set_view (EShellView *eshell_view, EFolder *efolder) { - GtkWidget *w = get_view (efolder); + GtkWidget *w; + Bonobo_UIHandler uih; + + uih = bonobo_object_corba_objref (BONOBO_OBJECT (eshell_view->uih)); + + w = get_view (efolder, uih); if (eshell_view->contents){ gtk_widget_destroy (eshell_view->contents); @@ -120,6 +128,9 @@ e_shell_view_set_view (EShellView *eshell_view, EFolder *efolder) eshell_view->contents = w; + if (!w) + return; + if (eshell_view->shortcut_displayed){ gtk_paned_pack2 (GTK_PANED (eshell_view->shortcut_hpaned), eshell_view->contents, FALSE, TRUE); |