summaryrefslogtreecommitdiff
path: root/gtk/gtk_tabs.c
diff options
context:
space:
mode:
authorRob Kendrick <rjek@netsurf-browser.org>2008-10-18 14:37:29 +0000
committerRob Kendrick <rjek@netsurf-browser.org>2008-10-18 14:37:29 +0000
commit33dc55587e907102c7fff4550ace43ff7d256e81 (patch)
tree0df2224eef085ee5c4c05096b59e01b1aa7b45a1 /gtk/gtk_tabs.c
parentcde05b7d9f828ffb3869130ec250ad528894195d (diff)
downloadnetsurf-33dc55587e907102c7fff4550ace43ff7d256e81.tar.gz
netsurf-33dc55587e907102c7fff4550ace43ff7d256e81.tar.bz2
Ctrl+W now closes just the current tab, and Ctrl+Shift+W closes the window. Added menu item to do this, too.
svn path=/trunk/netsurf/; revision=5593
Diffstat (limited to 'gtk/gtk_tabs.c')
-rw-r--r--gtk/gtk_tabs.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/gtk/gtk_tabs.c b/gtk/gtk_tabs.c
index 9d22267e6..0926fc085 100644
--- a/gtk/gtk_tabs.c
+++ b/gtk/gtk_tabs.c
@@ -165,3 +165,17 @@ void nsgtk_tab_page_changed(GtkNotebook *notebook, GtkNotebookPage *page,
if (gw)
nsgtk_scaffolding_set_top_level(gw);
}
+
+void nsgtk_tab_close_current(GtkNotebook *notebook)
+{
+ gint curr_page = gtk_notebook_get_current_page(notebook);
+ GtkWidget *window = gtk_notebook_get_nth_page(notebook, curr_page);
+ struct gui_window *gw = g_object_get_data(G_OBJECT(window),
+ "gui_window");
+
+ if (gtk_notebook_get_n_pages(notebook) < 2)
+ return; /* wicked things happen if we close the last tab */
+
+ gtk_notebook_remove_page(notebook, curr_page);
+ nsgtk_window_destroy_browser(gw);
+}