diff --git a/gnome/src/contacts/calllist.h b/gnome/src/contacts/calllist.h index a16fd0d3928600ef556ecc694a634e28da54300e..b912ad3f8153720bb487d7519450a4e400612f05 100644 --- a/gnome/src/contacts/calllist.h +++ b/gnome/src/contacts/calllist.h @@ -48,6 +48,7 @@ typedef struct { GtkWidget* view; GtkWidget* tree; GtkWidget* searchbar; + GtkWidget* mainwidget; // Calllist vars GQueue* callQueue; diff --git a/gnome/src/contacts/calltab.c b/gnome/src/contacts/calltab.c index 2dea9a55a67c593e91c44c8ecdf75b023e9e972e..741830918a6a803643fbfe6463ba4911e22b9bb2 100644 --- a/gnome/src/contacts/calltab.c +++ b/gnome/src/contacts/calltab.c @@ -45,6 +45,7 @@ calltab_t* calltab_init(gboolean searchbar_type, const gchar * const name) ret->callQueue = g_queue_new(); ret->selectedCall = NULL; + ret->mainwidget = NULL; return ret; } diff --git a/gnome/src/contacts/calltree.c b/gnome/src/contacts/calltree.c index 044bccdd77388a2ff93302ad37006f519b13cf79..ab10fd85e829609ddf9c1f94eb85aa8ce6194dde 100644 --- a/gnome/src/contacts/calltree.c +++ b/gnome/src/contacts/calltree.c @@ -1125,9 +1125,15 @@ void calltree_display(calltab_t *tab) } else ERROR("Not a valid call tab (%d, %s)", __LINE__, __FILE__); - gtk_widget_hide(active_calltree_tab->tree); + if (active_calltree_tab->mainwidget) + gtk_widget_hide(active_calltree_tab->mainwidget); + else + gtk_widget_hide(active_calltree_tab->tree); active_calltree_tab = tab; - gtk_widget_show(active_calltree_tab->tree); + if (active_calltree_tab->mainwidget) + gtk_widget_show(active_calltree_tab->mainwidget); + else + gtk_widget_show(active_calltree_tab->tree); GtkTreeSelection *sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(active_calltree_tab->view)); g_signal_emit_by_name(sel, "changed"); diff --git a/gnome/src/mainwindow.c b/gnome/src/mainwindow.c index fa996ee4ad347f27a7695dcf41d755bab2aaa6a1..a1db2733f3de57b62f6f838c41ecd5c62650274f 100644 --- a/gnome/src/mainwindow.c +++ b/gnome/src/mainwindow.c @@ -262,23 +262,27 @@ create_main_window() widget = create_toolbar_actions(ui_manager); pack_main_window_start(GTK_BOX(vbox), widget, FALSE, TRUE, 0); - /* Add paned */ + /* Setup call main widget*/ GtkWidget *vpaned = gtk_vpaned_new(); + current_calls_tab->mainwidget = vpaned; gtk_widget_show (vpaned); gtk_box_pack_start(GTK_BOX(vbox), vpaned, TRUE, TRUE, 0); + + /* Setup history main widget */ + GtkWidget *history_vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); + history_tab->mainwidget = history_vbox; + gtk_box_set_homogeneous(GTK_BOX(history_vbox), FALSE); + gtk_box_pack_start(GTK_BOX(history_vbox), history_tab->tree, TRUE, TRUE, 0); /* Add tree views */ -// gtk_box_pack_start(GTK_BOX(vbox), current_calls_tab->tree, TRUE, TRUE, 0); - gtk_box_pack_start(GTK_BOX(vbox), history_tab->tree, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(vbox), contacts_tab->tree, TRUE, TRUE, 0); + gtk_box_pack_start(GTK_BOX(vbox), history_vbox, TRUE, TRUE, 0); gtk_paned_pack1 (GTK_PANED (vpaned), current_calls_tab->tree, TRUE, FALSE); - gtk_paned_add1 (GTK_PANED (vpaned), history_tab->tree); - gtk_paned_add1 (GTK_PANED (vpaned), contacts_tab->tree); gtk_paned_pack2 (GTK_PANED (vpaned), tab_widget, FALSE, FALSE); - /* Add playback scale */ + /* Add playback scale and setup history tab */ seekslider = GTK_WIDGET(sfl_seekslider_new()); - pack_main_window_start(GTK_BOX(vbox), seekslider, FALSE, TRUE, 0); + pack_main_window_start(GTK_BOX(history_vbox), seekslider, FALSE, TRUE, 0); gtk_box_pack_start(GTK_BOX(vbox), subvbox, FALSE, FALSE, 0); @@ -314,7 +318,7 @@ create_main_window() gtk_widget_show_all(window); /* dont't show the history */ - gtk_widget_hide(history_tab->tree); + gtk_widget_hide(history_vbox); /* dont't show the contact list */ gtk_widget_hide(contacts_tab->tree); diff --git a/gnome/src/uimanager.c b/gnome/src/uimanager.c index 7ed10cdfcf80a6bfbd3e9b639c7887594848989f..407836b49f37403c894475bc8f5a6fbb5a82c5a8 100644 --- a/gnome/src/uimanager.c +++ b/gnome/src/uimanager.c @@ -981,7 +981,7 @@ toggle_addressbook_cb(GtkToggleAction *action, gpointer user_data UNUSED) { if (gtk_toggle_action_get_active(action)) { calltree_display(contacts_tab); - main_window_show_playback_scale(); + main_window_hide_playback_scale(); } else { calltree_display(current_calls_tab);