diff options
author | Rob Kendrick <rjek@netsurf-browser.org> | 2008-10-18 14:37:29 +0000 |
---|---|---|
committer | Rob Kendrick <rjek@netsurf-browser.org> | 2008-10-18 14:37:29 +0000 |
commit | 33dc55587e907102c7fff4550ace43ff7d256e81 (patch) | |
tree | 0df2224eef085ee5c4c05096b59e01b1aa7b45a1 | |
parent | cde05b7d9f828ffb3869130ec250ad528894195d (diff) | |
download | netsurf-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
-rw-r--r-- | Makefile.config | 4 | ||||
-rw-r--r-- | gtk/gtk_scaffolding.c | 11 | ||||
-rw-r--r-- | gtk/gtk_tabs.c | 14 | ||||
-rw-r--r-- | gtk/gtk_tabs.h | 1 | ||||
-rw-r--r-- | gtk/res/netsurf.glade | 61 |
5 files changed, 69 insertions, 22 deletions
diff --git a/Makefile.config b/Makefile.config index 239dd21ab..3ca25efe0 100644 --- a/Makefile.config +++ b/Makefile.config @@ -104,10 +104,10 @@ ifeq ($(TARGET),gtk) # Where to search for NetSurf's resources after looking in ~/.netsurf and # $NETSURFRES. It must have a trailing / - NETSURF_GTK_RESOURCES := /usr/local/share/netsurf/ + NETSURF_GTK_RESOURCES := /home/rjek/usr/netsurf/share/netsurf/ # Where to install the netsurf binary - NETSURF_GTK_BIN := /usr/local/bin/ + NETSURF_GTK_BIN := /home/rjek/usr/netsurf/bin/ # Enable NetSurf's use of Hubbub to parse HTML, rather than libxml2 # Valid options: YES, NO, AUTO (highly recommended) diff --git a/gtk/gtk_scaffolding.c b/gtk/gtk_scaffolding.c index 6cf9aa971..d1df660a4 100644 --- a/gtk/gtk_scaffolding.c +++ b/gtk/gtk_scaffolding.c @@ -192,6 +192,7 @@ MENUPROTO(global_history); /* tabs menu */ MENUPROTO(next_tab); MENUPROTO(prev_tab); +MENUPROTO(close_tab); /* help menu */ MENUPROTO(about); @@ -245,6 +246,7 @@ static struct menu_events menu_events[] = { /* tab menu */ MENUEVENT(next_tab), MENUEVENT(prev_tab), + MENUEVENT(close_tab), /* help menu */ MENUEVENT(about), @@ -1003,6 +1005,15 @@ MENUHANDLER(prev_tab) return TRUE; } +MENUHANDLER(close_tab) +{ + struct gtk_scaffolding *gw = (struct gtk_scaffolding *)g; + + nsgtk_tab_close_current(gw->notebook); + + return TRUE; +} + MENUHANDLER(about) { struct gtk_scaffolding *gw = (struct gtk_scaffolding *)g; 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); +} diff --git a/gtk/gtk_tabs.h b/gtk/gtk_tabs.h index cf4b9cae7..052ca8ef9 100644 --- a/gtk/gtk_tabs.h +++ b/gtk/gtk_tabs.h @@ -23,5 +23,6 @@ void nsgtk_tab_init(GtkWidget *tabs); void nsgtk_tab_add(struct gui_window *window); void nsgtk_tab_set_title(struct gui_window *g, const char *title); void nsgtk_tab_options_changed(GtkWidget *tabs); +void nsgtk_tab_close_current(GtkNotebook *notebook); #endif diff --git a/gtk/res/netsurf.glade b/gtk/res/netsurf.glade index 0bbc45f25..a66f65292 100644 --- a/gtk/res/netsurf.glade +++ b/gtk/res/netsurf.glade @@ -48,7 +48,7 @@ <accelerator key="n" modifiers="GDK_CONTROL_MASK" signal="activate"/> <child internal-child="image"> - <widget class="GtkImage" id="image571"> + <widget class="GtkImage" id="image608"> <property name="visible">True</property> <property name="stock">gtk-new</property> <property name="icon_size">1</property> @@ -70,7 +70,7 @@ <accelerator key="t" modifiers="GDK_CONTROL_MASK" signal="activate"/> <child internal-child="image"> - <widget class="GtkImage" id="image572"> + <widget class="GtkImage" id="image609"> <property name="visible">True</property> <property name="stock">gtk-new</property> <property name="icon_size">1</property> @@ -92,7 +92,7 @@ <accelerator key="o" modifiers="GDK_CONTROL_MASK" signal="activate"/> <child internal-child="image"> - <widget class="GtkImage" id="image573"> + <widget class="GtkImage" id="image610"> <property name="visible">True</property> <property name="stock">gtk-open</property> <property name="icon_size">1</property> @@ -111,10 +111,10 @@ <property name="tooltip" translatable="yes">Close this browser window.</property> <property name="label" translatable="yes">_Close Window</property> <property name="use_underline">True</property> - <accelerator key="w" modifiers="GDK_CONTROL_MASK" signal="activate"/> + <accelerator key="w" modifiers="GDK_CONTROL_MASK | GDK_SHIFT_MASK" signal="activate"/> <child internal-child="image"> - <widget class="GtkImage" id="image574"> + <widget class="GtkImage" id="image611"> <property name="visible">True</property> <property name="stock">gtk-close</property> <property name="icon_size">1</property> @@ -142,7 +142,7 @@ <property name="use_underline">True</property> <child internal-child="image"> - <widget class="GtkImage" id="image575"> + <widget class="GtkImage" id="image612"> <property name="visible">True</property> <property name="stock">gtk-save-as</property> <property name="icon_size">1</property> @@ -223,7 +223,7 @@ <accelerator key="P" modifiers="GDK_CONTROL_MASK | GDK_SHIFT_MASK" signal="activate"/> <child internal-child="image"> - <widget class="GtkImage" id="image576"> + <widget class="GtkImage" id="image613"> <property name="visible">True</property> <property name="stock">gtk-print-preview</property> <property name="icon_size">1</property> @@ -245,7 +245,7 @@ <accelerator key="P" modifiers="GDK_CONTROL_MASK" signal="activate"/> <child internal-child="image"> - <widget class="GtkImage" id="image577"> + <widget class="GtkImage" id="image614"> <property name="visible">True</property> <property name="stock">gtk-print</property> <property name="icon_size">1</property> @@ -365,7 +365,7 @@ <property name="use_underline">True</property> <child internal-child="image"> - <widget class="GtkImage" id="image578"> + <widget class="GtkImage" id="image615"> <property name="visible">True</property> <property name="stock">gtk-preferences</property> <property name="icon_size">1</property> @@ -399,7 +399,7 @@ <accelerator key="Escape" modifiers="0" signal="activate"/> <child internal-child="image"> - <widget class="GtkImage" id="image579"> + <widget class="GtkImage" id="image616"> <property name="visible">True</property> <property name="stock">gtk-stop</property> <property name="icon_size">1</property> @@ -420,7 +420,7 @@ <accelerator key="F5" modifiers="0" signal="activate"/> <child internal-child="image"> - <widget class="GtkImage" id="image580"> + <widget class="GtkImage" id="image617"> <property name="visible">True</property> <property name="stock">gtk-refresh</property> <property name="icon_size">1</property> @@ -447,7 +447,7 @@ <property name="use_underline">True</property> <child internal-child="image"> - <widget class="GtkImage" id="image581"> + <widget class="GtkImage" id="image618"> <property name="visible">True</property> <property name="stock">gtk-zoom-in</property> <property name="icon_size">1</property> @@ -468,7 +468,7 @@ <property name="use_underline">True</property> <child internal-child="image"> - <widget class="GtkImage" id="image582"> + <widget class="GtkImage" id="image619"> <property name="visible">True</property> <property name="stock">gtk-zoom-in</property> <property name="icon_size">1</property> @@ -488,7 +488,7 @@ <property name="use_underline">True</property> <child internal-child="image"> - <widget class="GtkImage" id="image583"> + <widget class="GtkImage" id="image620"> <property name="visible">True</property> <property name="stock">gtk-zoom-100</property> <property name="icon_size">1</property> @@ -508,7 +508,7 @@ <property name="use_underline">True</property> <child internal-child="image"> - <widget class="GtkImage" id="image584"> + <widget class="GtkImage" id="image621"> <property name="visible">True</property> <property name="stock">gtk-zoom-out</property> <property name="icon_size">1</property> @@ -533,7 +533,7 @@ <accelerator key="F11" modifiers="0" signal="activate"/> <child internal-child="image"> - <widget class="GtkImage" id="image585"> + <widget class="GtkImage" id="image622"> <property name="visible">True</property> <property name="stock">gtk-fullscreen</property> <property name="icon_size">1</property> @@ -711,7 +711,7 @@ <accelerator key="Left" modifiers="GDK_MOD1_MASK" signal="activate"/> <child internal-child="image"> - <widget class="GtkImage" id="image586"> + <widget class="GtkImage" id="image623"> <property name="visible">True</property> <property name="stock">gtk-go-back</property> <property name="icon_size">1</property> @@ -732,7 +732,7 @@ <accelerator key="Right" modifiers="GDK_MOD1_MASK" signal="activate"/> <child internal-child="image"> - <widget class="GtkImage" id="image587"> + <widget class="GtkImage" id="image624"> <property name="visible">True</property> <property name="stock">gtk-go-forward</property> <property name="icon_size">1</property> @@ -753,7 +753,7 @@ <accelerator key="Down" modifiers="GDK_MOD1_MASK" signal="activate"/> <child internal-child="image"> - <widget class="GtkImage" id="image588"> + <widget class="GtkImage" id="image625"> <property name="visible">True</property> <property name="stock">gtk-home</property> <property name="icon_size">1</property> @@ -865,6 +865,27 @@ <accelerator key="Left" modifiers="GDK_CONTROL_MASK" signal="activate"/> </widget> </child> + + <child> + <widget class="GtkImageMenuItem" id="close_tab"> + <property name="visible">True</property> + <property name="label" translatable="yes">_Close tab</property> + <property name="use_underline">True</property> + <accelerator key="W" modifiers="GDK_CONTROL_MASK" signal="activate"/> + + <child internal-child="image"> + <widget class="GtkImage" id="image626"> + <property name="visible">True</property> + <property name="stock">gtk-close</property> + <property name="icon_size">1</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + </child> + </widget> + </child> </widget> </child> </widget> @@ -888,7 +909,7 @@ <property name="use_underline">True</property> <child internal-child="image"> - <widget class="GtkImage" id="image589"> + <widget class="GtkImage" id="image627"> <property name="visible">True</property> <property name="stock">gtk-help</property> <property name="icon_size">1</property> |