/** Close tab and removes tab info structure */ static void browser_tabs_close_tab (tabInfo *tab) { int n = 0; GList *iter, *list; /* Find the tab index that needs to be closed */ iter = list = gtk_container_get_children (GTK_CONTAINER (tabs->priv->notebook)); while (iter) { if (tab->widget == GTK_WIDGET (iter->data)) break; n++; iter = g_list_next (iter); } g_list_free (list); if (iter) { gtk_notebook_remove_page (tabs->priv->notebook, n); browser_tabs_remove_tab (tab); } /* check if all tabs are closed */ if (1 == gtk_notebook_get_n_pages (tabs->priv->notebook)) gtk_notebook_set_show_tabs (tabs->priv->notebook, FALSE); }
static void browser_tabs_finalize (GObject *object) { BrowserTabs *bt = BROWSER_TABS (object); GSList *iter = bt->priv->list; while (iter) { browser_tabs_remove_tab (iter->data); iter = g_slist_next (iter); } G_OBJECT_CLASS (parent_class)->finalize (object); }
/** Close tab and removes tab info structure */ static void browser_tabs_close_tab (tabInfo *tab) { int n; n = gtk_notebook_get_current_page (tabs->priv->notebook); gtk_notebook_remove_page (tabs->priv->notebook, n); browser_tabs_remove_tab (tab); /* check if all tabs are closed */ if (1 == gtk_notebook_get_n_pages (tabs->priv->notebook)) gtk_notebook_set_show_tabs (tabs->priv->notebook, FALSE); }