notebooks: Don't show tabs when the notebook only has one page
This commit is contained in:
		| @@ -61,7 +61,6 @@ struct _XedNotebookPrivate | ||||
|     gint           x_start; | ||||
|     gint           y_start; | ||||
|     gint           drag_in_progress : 1; | ||||
|     gint           always_show_tabs : 1; | ||||
|     gint           close_buttons_sensitive : 1; | ||||
|     gint           tab_drag_and_drop_enabled : 1; | ||||
|     gint           tab_scrolling_enabled : 1; | ||||
| @@ -691,22 +690,14 @@ xed_notebook_switch_page_cb (GtkNotebook *notebook, | ||||
|  | ||||
| /* | ||||
|  * update_tabs_visibility: Hide tabs if there is only one tab | ||||
|  * and the pref is not set. | ||||
|  */ | ||||
| static void | ||||
| update_tabs_visibility (XedNotebook *nb, | ||||
|                         gboolean     before_inserting) | ||||
| update_tabs_visibility (XedNotebook *notebook) | ||||
| { | ||||
|     gboolean show_tabs; | ||||
|     guint num; | ||||
|  | ||||
|     num = gtk_notebook_get_n_pages (GTK_NOTEBOOK (nb)); | ||||
|  | ||||
|     if (before_inserting) num++; | ||||
|  | ||||
|     show_tabs = (nb->priv->always_show_tabs || num > 1); | ||||
|  | ||||
|     gtk_notebook_set_show_tabs (GTK_NOTEBOOK (nb), show_tabs); | ||||
|     show_tabs = (gtk_notebook_get_n_pages (GTK_NOTEBOOK (notebook)) > 1); | ||||
|     gtk_notebook_set_show_tabs (GTK_NOTEBOOK (notebook), show_tabs); | ||||
| } | ||||
|  | ||||
| static void | ||||
| @@ -719,11 +710,9 @@ xed_notebook_init (XedNotebook *notebook) | ||||
|     notebook->priv->tab_scrolling_enabled = TRUE; | ||||
|  | ||||
|     gtk_notebook_set_scrollable (GTK_NOTEBOOK (notebook), TRUE); | ||||
|     gtk_notebook_set_show_border (GTK_NOTEBOOK (notebook), FALSE); | ||||
|     // gtk_notebook_set_show_border (GTK_NOTEBOOK (notebook), FALSE); | ||||
|     gtk_notebook_set_show_tabs (GTK_NOTEBOOK (notebook), FALSE); | ||||
|  | ||||
|     notebook->priv->always_show_tabs = TRUE; | ||||
|  | ||||
|     g_signal_connect (notebook, "button-press-event", | ||||
|                       (GCallback)button_press_cb, NULL); | ||||
|     g_signal_connect (notebook, "button-release-event", | ||||
| @@ -840,24 +829,6 @@ remove_tab_label (XedNotebook *nb, | ||||
|     g_object_set_data (G_OBJECT (tab), "tab-label", NULL); | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * xed_notebook_set_always_show_tabs: | ||||
|  * @nb: a #XedNotebook | ||||
|  * @show_tabs: %TRUE to always show the tabs | ||||
|  * | ||||
|  * Sets the visibility of the tabs in the @nb. | ||||
|  */ | ||||
| void | ||||
| xed_notebook_set_always_show_tabs (XedNotebook *nb, | ||||
|                                    gboolean     show_tabs) | ||||
| { | ||||
|     g_return_if_fail (XED_IS_NOTEBOOK (nb)); | ||||
|  | ||||
|     nb->priv->always_show_tabs = (show_tabs != FALSE); | ||||
|  | ||||
|     update_tabs_visibility (nb, FALSE); | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * xed_notebook_add_tab: | ||||
|  * @nb: a #XedNotebook | ||||
| @@ -880,7 +851,7 @@ xed_notebook_add_tab (XedNotebook *nb, | ||||
|  | ||||
|     tab_label = create_tab_label (nb, tab); | ||||
|     gtk_notebook_insert_page (GTK_NOTEBOOK (nb), GTK_WIDGET (tab), tab_label, position); | ||||
|     update_tabs_visibility (nb, TRUE); | ||||
|     update_tabs_visibility (nb); | ||||
|  | ||||
|     g_signal_emit (G_OBJECT (nb), signals[TAB_ADDED], 0, tab); | ||||
|  | ||||
| @@ -940,7 +911,7 @@ remove_tab (XedTab      *tab, | ||||
|  | ||||
|     remove_tab_label (nb, tab); | ||||
|     gtk_notebook_remove_page (GTK_NOTEBOOK (nb), position); | ||||
|     update_tabs_visibility (nb, FALSE); | ||||
|     update_tabs_visibility (nb); | ||||
|  | ||||
|     g_signal_emit (G_OBJECT (nb), signals[TAB_REMOVED], 0, tab); | ||||
|  | ||||
|   | ||||
| @@ -119,11 +119,6 @@ void            xed_notebook_move_tab		(XedNotebook *src, | ||||
| 						 XedTab      *tab, | ||||
| 						 gint           dest_position); | ||||
|  | ||||
| /* FIXME: do we really need this function ? */ | ||||
| void		xed_notebook_set_always_show_tabs | ||||
| 						(XedNotebook *nb, | ||||
| 						 gboolean       show_tabs); | ||||
|  | ||||
| void		xed_notebook_set_close_buttons_sensitive | ||||
| 						(XedNotebook *nb, | ||||
| 						 gboolean       sensitive); | ||||
|   | ||||
| @@ -403,6 +403,8 @@ build_notebook_for_panel (XedPanel *panel) | ||||
|  | ||||
|     gtk_notebook_set_scrollable (GTK_NOTEBOOK (panel->priv->notebook), TRUE); | ||||
|     gtk_notebook_popup_enable (GTK_NOTEBOOK (panel->priv->notebook)); | ||||
|     gtk_notebook_set_show_tabs (GTK_NOTEBOOK (panel->priv->notebook), FALSE); | ||||
|     gtk_notebook_set_show_border (GTK_NOTEBOOK (panel->priv->notebook), FALSE); | ||||
|  | ||||
|     gtk_widget_show (GTK_WIDGET (panel->priv->notebook)); | ||||
| } | ||||
| @@ -505,6 +507,15 @@ build_tab_label (XedPanel    *panel, | ||||
|     return hbox; | ||||
| } | ||||
|  | ||||
| static void | ||||
| update_tabs_visibility (XedPanel *panel) | ||||
| { | ||||
|     gboolean show_tabs; | ||||
|  | ||||
|     show_tabs = (gtk_notebook_get_n_pages (GTK_NOTEBOOK (panel->priv->notebook)) > 1); | ||||
|     gtk_notebook_set_show_tabs (GTK_NOTEBOOK (panel->priv->notebook), show_tabs); | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * xed_panel_add_item: | ||||
|  * @panel: a #XedPanel | ||||
| @@ -561,6 +572,7 @@ xed_panel_add_item (XedPanel    *panel, | ||||
|     } | ||||
|  | ||||
|     gtk_notebook_append_page_menu (GTK_NOTEBOOK (panel->priv->notebook), item, tab_label, menu_label); | ||||
|     update_tabs_visibility (panel); | ||||
|  | ||||
|     g_signal_emit (G_OBJECT (panel), signals[ITEM_ADDED], 0, item); | ||||
| } | ||||
| @@ -629,6 +641,7 @@ xed_panel_remove_item (XedPanel  *panel, | ||||
|     g_object_ref (G_OBJECT (item)); | ||||
|  | ||||
|     gtk_notebook_remove_page (GTK_NOTEBOOK (panel->priv->notebook), page_num); | ||||
|     update_tabs_visibility (panel); | ||||
|  | ||||
|     g_signal_emit (G_OBJECT (panel), signals[ITEM_REMOVED], 0, item); | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user