diff options
-rw-r--r-- | shell/ChangeLog | 20 | ||||
-rw-r--r-- | shell/e-shell-folder-commands.c | 2 | ||||
-rw-r--r-- | shell/e-shell-view-menu.c | 2 | ||||
-rw-r--r-- | shell/e-shell-view.c | 2 | ||||
-rw-r--r-- | shell/e-shell.c | 15 | ||||
-rw-r--r-- | shell/e-shell.h | 3 |
6 files changed, 35 insertions, 9 deletions
diff --git a/shell/ChangeLog b/shell/ChangeLog index 5a7eb5ef63..ab6872f2d6 100644 --- a/shell/ChangeLog +++ b/shell/ChangeLog @@ -1,5 +1,25 @@ 2001-10-12 Ettore Perazzoli <ettore@ximian.com> + [Fix #7643, Starting new view doesn't honor "view" settings.] + + * e-shell-view-menu.c (command_open_folder_in_new_window): Pass + the parent @shell_view as the @template_view arg to + `e_shell_create_view()' + + * e-shell-view.c (activate_shortcut_cb): Pass the _view as the + @template_view arg to `e_shell_create_view()'. + + * e-shell-folder-commands.c + (e_shell_command_open_folder_in_other_window): Pass the parent + @shell_view as the @template_view arg to `e_shell_create_view()'. + + * e-shell.c (e_shell_create_view): New arg @template_view. + (impl_Shell_createNewView): Pass %NULL as @template_view when + calling it. + (e_shell_restore_from_settings): Likewise. + +2001-10-12 Ettore Perazzoli <ettore@ximian.com> + * main.c (quit_box_new): Also flush GDK after flushing GTK. Otherwise GTK might queue draw requests to X that don't get executed. diff --git a/shell/e-shell-folder-commands.c b/shell/e-shell-folder-commands.c index bef14fb5e5..9a0be5a6d8 100644 --- a/shell/e-shell-folder-commands.c +++ b/shell/e-shell-folder-commands.c @@ -272,7 +272,7 @@ e_shell_command_open_folder_in_other_window (EShell *shell, folder_path = e_shell_view_get_current_path (shell_view); uri = g_strconcat (E_SHELL_URI_PREFIX, folder_path, NULL); - view = e_shell_create_view (shell, uri); + view = e_shell_create_view (shell, uri, shell_view); g_free (uri); gtk_widget_show (GTK_WIDGET (view)); diff --git a/shell/e-shell-view-menu.c b/shell/e-shell-view-menu.c index 116ab27382..ba4db225b3 100644 --- a/shell/e-shell-view-menu.c +++ b/shell/e-shell-view-menu.c @@ -327,7 +327,7 @@ command_open_folder_in_new_window (BonoboUIComponent *uih, shell = e_shell_view_get_shell (shell_view); uri = g_strconcat (E_SHELL_URI_PREFIX, get_path_for_folder_op (shell_view), NULL); - new_view = e_shell_create_view (shell, uri); + new_view = e_shell_create_view (shell, uri, shell_view); g_free (uri); gtk_widget_show (GTK_WIDGET (new_view)); diff --git a/shell/e-shell-view.c b/shell/e-shell-view.c index 85adff70c4..06843e64e5 100644 --- a/shell/e-shell-view.c +++ b/shell/e-shell-view.c @@ -668,7 +668,7 @@ activate_shortcut_cb (EShortcutsView *shortcut_view, if (in_new_window) { EShellView *new_view; - new_view = e_shell_create_view (e_shell_view_get_shell (shell_view), uri); + new_view = e_shell_create_view (e_shell_view_get_shell (shell_view), uri, shell_view); gtk_widget_show (GTK_WIDGET (new_view)); } else { e_shell_view_display_uri (shell_view, uri); diff --git a/shell/e-shell.c b/shell/e-shell.c index 1f8628c2fe..6d793926af 100644 --- a/shell/e-shell.c +++ b/shell/e-shell.c @@ -287,7 +287,7 @@ impl_Shell_createNewView (PortableServer_Servant servant, return CORBA_OBJECT_NIL; } - shell_view = e_shell_create_view (shell, uri); + shell_view = e_shell_create_view (shell, uri, NULL); if (shell_view == NULL) { CORBA_exception_set (ev, CORBA_USER_EXCEPTION, ex_GNOME_Evolution_Shell_NotFound, NULL); @@ -1089,6 +1089,7 @@ e_shell_new (const char *local_directory, * e_shell_create_view: * @shell: The shell for which to create a new view. * @uri: URI for the new view. + * @template_view: Window from which to copy the view settings (can be %NULL). * * Create a new view for @uri. * @@ -1096,7 +1097,8 @@ e_shell_new (const char *local_directory, **/ EShellView * e_shell_create_view (EShell *shell, - const char *uri) + const char *uri, + EShellView *template_view) { EShellView *view; EShellPrivate *priv; @@ -1126,6 +1128,11 @@ e_shell_create_view (EShell *shell, task_bar = e_shell_view_get_task_bar (view); e_activity_handler_attach_task_bar (priv->activity_handler, task_bar); + if (template_view != NULL) { + e_shell_view_show_folder_bar (view, e_shell_view_folder_bar_shown (template_view)); + e_shell_view_show_shortcut_bar (view, e_shell_view_shortcut_bar_shown (template_view)); + } + return view; } @@ -1393,9 +1400,7 @@ e_shell_restore_from_settings (EShell *shell) for (i = 0; i < num_views; i++) { EShellView *view; - /* FIXME: restore the URI here. There should be an - e_shell_create_view_from_configuration() thingie. */ - view = e_shell_create_view (shell, NULL); + view = e_shell_create_view (shell, NULL, NULL); if (! e_shell_view_load_settings (view, i)) retval = FALSE; diff --git a/shell/e-shell.h b/shell/e-shell.h index 4c17930b43..8f413902bf 100644 --- a/shell/e-shell.h +++ b/shell/e-shell.h @@ -101,7 +101,8 @@ EShell *e_shell_new (const char *local_director EShellConstructResult *construct_result_return); EShellView *e_shell_create_view (EShell *shell, - const char *uri); + const char *uri, + EShellView *template_view); const char *e_shell_get_local_directory (EShell *shell); EShortcuts *e_shell_get_shortcuts (EShell *shell); |