diff options
author | Dan Winship <danw@src.gnome.org> | 2000-03-30 08:22:56 +0800 |
---|---|---|
committer | Dan Winship <danw@src.gnome.org> | 2000-03-30 08:22:56 +0800 |
commit | 4435a5db63161145af807bc7e0845a899adeca30 (patch) | |
tree | 1049f1719cde0632016610952e20604f178eb909 /shell | |
parent | b36ddcbdd5cd0cc57dd7f15931a699bda6499297 (diff) | |
download | gsoc2013-evolution-4435a5db63161145af807bc7e0845a899adeca30.tar.gz gsoc2013-evolution-4435a5db63161145af807bc7e0845a899adeca30.tar.zst gsoc2013-evolution-4435a5db63161145af807bc7e0845a899adeca30.zip |
Call bonobo_control_frame_activate on the folder_view every time it is
* shell/e-shell-view.c (e_shell_view_set_view): Call
bonobo_control_frame_activate on the folder_view every time it
is displayed, and bonobo_control_frame_deactivate every time it is
hidden.
* folder-browser-factory.c (control_activate): build a toolbar.
(control_deactivate): and hide it.
svn path=/trunk/; revision=2250
Diffstat (limited to 'shell')
-rw-r--r-- | shell/e-shell-view.c | 30 |
1 files changed, 18 insertions, 12 deletions
diff --git a/shell/e-shell-view.c b/shell/e-shell-view.c index b4558c023b..2061c9b329 100644 --- a/shell/e-shell-view.c +++ b/shell/e-shell-view.c @@ -173,23 +173,30 @@ get_view (EShellView *eshell_view, EFolder *efolder, Bonobo_UIHandler uih) void e_shell_view_set_view (EShellView *eshell_view, EFolder *efolder) { - GtkWidget *notebook = eshell_view->priv->notebook; + GtkNotebook *notebook = GTK_NOTEBOOK (eshell_view->priv->notebook); GtkWidget *folder_view = g_hash_table_lookup ( eshell_view->priv->folder_views, efolder); + int current_page = gtk_notebook_get_current_page (notebook); g_assert (eshell_view); g_assert (efolder); + if (current_page != -1) { + GtkWidget *current; + + current = gtk_notebook_get_nth_page (notebook, current_page); + bonobo_control_frame_control_deactivate (bonobo_widget_get_control_frame (BONOBO_WIDGET (current))); + } + /* if we found a notebook page in our hash, that represents this efolder, switch to it */ if (folder_view) { - - int notebook_page = gtk_notebook_page_num ( - GTK_NOTEBOOK(notebook), - folder_view); + int notebook_page = gtk_notebook_page_num (notebook, + folder_view); g_assert (notebook_page != -1); - gtk_notebook_set_page (GTK_NOTEBOOK (notebook), notebook_page); + gtk_notebook_set_page (notebook, notebook_page); + bonobo_control_frame_control_activate (bonobo_widget_get_control_frame (BONOBO_WIDGET (folder_view))); } else { /* get a new control that represents this efolder, @@ -197,21 +204,20 @@ e_shell_view_set_view (EShellView *eshell_view, EFolder *efolder) Bonobo_UIHandler uih = bonobo_object_corba_objref ( BONOBO_OBJECT (eshell_view->uih)); - + GtkWidget *w = get_view (eshell_view, efolder, uih); int new_page_index; if (!w) return; - gtk_notebook_append_page (GTK_NOTEBOOK (notebook), w, NULL); + gtk_notebook_append_page (notebook, w, NULL); - new_page_index = gtk_notebook_page_num ( - GTK_NOTEBOOK(notebook), - folder_view); + new_page_index = gtk_notebook_page_num (notebook, + folder_view); g_hash_table_insert (eshell_view->priv->folder_views, efolder, w); - gtk_notebook_set_page (GTK_NOTEBOOK (notebook),new_page_index); + gtk_notebook_set_page (notebook, new_page_index); } } |