summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Young <chris@unsatisfactorysoftware.co.uk>2011-07-02 22:04:51 +0000
committerChris Young <chris@unsatisfactorysoftware.co.uk>2011-07-02 22:04:51 +0000
commitbdc0d994c117d80a7cd18ae9755978e532736376 (patch)
treedd4db253e900f3127533318459755b4b1ae629b4
parent910c6d314fc356a8b8628b3ff7b26c3ff289a4dd (diff)
downloadnetsurf-bdc0d994c117d80a7cd18ae9755978e532736376.tar.gz
netsurf-bdc0d994c117d80a7cd18ae9755978e532736376.tar.bz2
Add an option to open new tabs next to the current tab. Needs some additional logic
as opening multiple tabs results in the new tabs being in reverse order to that expected. svn path=/trunk/netsurf/; revision=12559
-rw-r--r--!NetSurf/Resources/de/Messages1
-rw-r--r--!NetSurf/Resources/en/Messages1
-rw-r--r--!NetSurf/Resources/fr/Messages1
-rw-r--r--!NetSurf/Resources/it/Messages1
-rw-r--r--!NetSurf/Resources/nl/Messages1
-rwxr-xr-xamiga/gui.c9
-rwxr-xr-xamiga/gui_options.c19
-rw-r--r--amiga/options.h3
8 files changed, 33 insertions, 3 deletions
diff --git a/!NetSurf/Resources/de/Messages b/!NetSurf/Resources/de/Messages
index 5f2bb6204..c71817f63 100644
--- a/!NetSurf/Resources/de/Messages
+++ b/!NetSurf/Resources/de/Messages
@@ -1406,6 +1406,7 @@ DownloadDir:Downloadverzeichnis
TabbedBrowsing:Registernavigation (Tabs)
TabActive:Neuen Tab im Hintergrund öffnen
TabMiddle:Mittlere Maustaste öffnet Tab
+TabLast:Open new tabs after all existing tabs
DownloadNotify:Downloadende melden
SearchWeb:Websuche
SearchURL:Suche über URL Leiste
diff --git a/!NetSurf/Resources/en/Messages b/!NetSurf/Resources/en/Messages
index fe8b27291..0fcfdce34 100644
--- a/!NetSurf/Resources/en/Messages
+++ b/!NetSurf/Resources/en/Messages
@@ -1427,6 +1427,7 @@ DownloadDir:Initial download location
TabbedBrowsing:Tabbed browsing
TabActive:Open new tabs in background
TabMiddle:Middle mouse button opens tabs
+TabLast:Open new tabs after all existing tabs
DownloadNotify:Notify on completion
SearchWeb:Web search
SearchURL:Search from URL bar
diff --git a/!NetSurf/Resources/fr/Messages b/!NetSurf/Resources/fr/Messages
index 904916fa0..3fe1abb65 100644
--- a/!NetSurf/Resources/fr/Messages
+++ b/!NetSurf/Resources/fr/Messages
@@ -1412,6 +1412,7 @@ DownloadDir:Initial download location
TabbedBrowsing:Tabbed browsing
TabActive:Open new tabs in background
TabMiddle:Middle mouse button opens tabs
+TabLast:Open new tabs after all existing tabs
DownloadNotify:Notify on completion
SearchWeb:Web search
SearchURL:Search from URL bar
diff --git a/!NetSurf/Resources/it/Messages b/!NetSurf/Resources/it/Messages
index 31f586650..3ca755a49 100644
--- a/!NetSurf/Resources/it/Messages
+++ b/!NetSurf/Resources/it/Messages
@@ -1414,6 +1414,7 @@ DownloadDir:Percorso predefinito per i trasferimenti
TabbedBrowsing:Navigazione a schede
TabActive:Apri in sottofondo le nuove schede aperte da un link
TabMiddle:Tasto centrale del mouse per l'apertura delle schede (Tab)
+TabLast:Open new tabs after all existing tabs
DownloadNotify:Notifica al completamento (Ringhio)
SearchWeb:Ricerca nel Web
SearchURL:Ricerca da barra URL
diff --git a/!NetSurf/Resources/nl/Messages b/!NetSurf/Resources/nl/Messages
index a382e86f4..f4c1747ab 100644
--- a/!NetSurf/Resources/nl/Messages
+++ b/!NetSurf/Resources/nl/Messages
@@ -1407,6 +1407,7 @@ DownloadDir:Initial download location
TabbedBrowsing:Tabbed browsing
TabActive:Open new tabs in background
TabMiddle:Middle mouse button opens tabs
+TabLast:Open new tabs after all existing tabs
DownloadNotify:Notify on completion
SearchWeb:Web search
SearchURL:Search from URL bar
diff --git a/amiga/gui.c b/amiga/gui.c
index ba6245feb..6e115c2d8 100755
--- a/amiga/gui.c
+++ b/amiga/gui.c
@@ -2411,7 +2411,14 @@ struct gui_window *gui_create_browser_window(struct browser_window *bw,
TNA_CloseGadget, TRUE,
TAG_DONE);
- AddTail(&gwin->shared->tab_list,gwin->tab_node);
+ if(option_new_tab_last)
+ {
+ AddTail(&gwin->shared->tab_list, gwin->tab_node);
+ }
+ else
+ {
+ Insert(&gwin->shared->tab_list, gwin->tab_node, clone->window->tab_node);
+ }
RefreshSetGadgetAttrs((struct Gadget *)gwin->shared->objects[GID_TABS],
gwin->shared->win, NULL,
diff --git a/amiga/gui_options.c b/amiga/gui_options.c
index 83963257b..0f453439f 100755
--- a/amiga/gui_options.c
+++ b/amiga/gui_options.c
@@ -114,6 +114,7 @@ enum
GID_OPTS_DLDIR,
GID_OPTS_TAB_ACTIVE,
GID_OPTS_TAB_2,
+ GID_OPTS_TAB_LAST,
GID_OPTS_SEARCH_PROV,
GID_OPTS_CLIPBOARD,
GID_OPTS_CMENU_ENABLE,
@@ -280,6 +281,7 @@ void ami_gui_opts_setup(void)
gadlab[GID_OPTS_DLDIR] = (char *)ami_utf8_easy((char *)messages_get("DownloadDir"));
gadlab[GID_OPTS_TAB_ACTIVE] = (char *)ami_utf8_easy((char *)messages_get("TabActive"));
gadlab[GID_OPTS_TAB_2] = (char *)ami_utf8_easy((char *)messages_get("TabMiddle"));
+ gadlab[GID_OPTS_TAB_LAST] = (char *)ami_utf8_easy((char *)messages_get("TabLast"));
gadlab[GID_OPTS_SEARCH_PROV] = (char *)ami_utf8_easy((char *)messages_get("SearchProvider"));
gadlab[GID_OPTS_CLIPBOARD] = (char *)ami_utf8_easy((char *)messages_get("ClipboardUTF8"));
gadlab[GID_OPTS_CMENU_ENABLE] = (char *)ami_utf8_easy((char *)messages_get("Enable"));
@@ -1111,6 +1113,12 @@ void ami_gui_opts_open(void)
GA_Text, gadlab[GID_OPTS_TAB_ACTIVE],
GA_Selected, !option_new_tab_active,
CheckBoxEnd,
+ LAYOUT_AddChild, gow->objects[GID_OPTS_TAB_LAST] = CheckBoxObject,
+ GA_ID, GID_OPTS_TAB_LAST,
+ GA_RelVerify, TRUE,
+ GA_Text, gadlab[GID_OPTS_TAB_LAST],
+ GA_Selected, option_new_tab_last,
+ CheckBoxEnd,
LAYOUT_AddChild, gow->objects[GID_OPTS_TAB_2] = CheckBoxObject,
GA_ID, GID_OPTS_TAB_2,
GA_RelVerify, TRUE,
@@ -1118,10 +1126,11 @@ void ami_gui_opts_open(void)
GA_Selected, option_button_2_tab,
CheckBoxEnd,
LayoutEnd, // tabbed browsing
+ LAYOUT_AddChild,VGroupObject, // temp extra group
+ LAYOUT_BevelStyle, BVS_GROUP, // stolen from below
+ LAYOUT_Label, gadlab[GRP_OPTS_CONTEXTMENU], // and this
LAYOUT_AddChild,VGroupObject,
LAYOUT_SpaceOuter, TRUE,
- LAYOUT_BevelStyle, BVS_GROUP,
- LAYOUT_Label, gadlab[GRP_OPTS_CONTEXTMENU],
LAYOUT_AddChild, gow->objects[GID_OPTS_CMENU_ENABLE] = CheckBoxObject,
GA_ID, GID_OPTS_CMENU_ENABLE,
GA_RelVerify, TRUE,
@@ -1136,6 +1145,8 @@ void ami_gui_opts_open(void)
GA_Selected, option_sticky_context_menu,
CheckBoxEnd,
LayoutEnd, // context menus
+ CHILD_WeightedHeight, 0,
+ LayoutEnd, // temp extra group for spacing
LayoutEnd, // hgroup
CHILD_WeightedHeight, 0,
LAYOUT_AddChild, HGroupObject,
@@ -1563,6 +1574,10 @@ void ami_gui_opts_use(void)
if(data) option_new_tab_active = false;
else option_new_tab_active = true;
+ GetAttr(GA_Selected,gow->objects[GID_OPTS_TAB_LAST],(ULONG *)&data);
+ if(data) option_new_tab_last = true;
+ else option_new_tab_last = false;
+
GetAttr(GA_Selected,gow->objects[GID_OPTS_TAB_2],(ULONG *)&data);
if(data) option_button_2_tab = true;
else option_button_2_tab = false;
diff --git a/amiga/options.h b/amiga/options.h
index dda6f5127..7101bbfe8 100644
--- a/amiga/options.h
+++ b/amiga/options.h
@@ -32,6 +32,7 @@ extern bool option_sticky_context_menu;
extern bool option_truecolour_mouse_pointers;
extern bool option_use_os_pointers;
extern bool option_new_tab_active;
+extern bool option_new_tab_last;
extern bool option_kiosk_mode;
extern char *option_search_engines_file;
extern char *option_search_ico_file;
@@ -79,6 +80,7 @@ bool option_sticky_context_menu = false; \
bool option_truecolour_mouse_pointers = false; \
bool option_use_os_pointers = true; \
bool option_new_tab_active = false; \
+bool option_new_tab_last = true; \
bool option_kiosk_mode = false; \
char *option_search_engines_file = 0; \
char *option_search_ico_file = 0; \
@@ -126,6 +128,7 @@ int option_amiga_ydpi = 72; \
{ "truecolour_mouse_pointers", OPTION_BOOL, &option_truecolour_mouse_pointers}, \
{ "os_mouse_pointers", OPTION_BOOL, &option_use_os_pointers}, \
{ "new_tab_is_active", OPTION_BOOL, &option_new_tab_active}, \
+{ "new_tab_last", OPTION_BOOL, &option_new_tab_last}, \
{ "kiosk_mode", OPTION_BOOL, &option_kiosk_mode}, \
{ "search_engines_file", OPTION_STRING, &option_search_engines_file }, \
{ "search_ico_file", OPTION_STRING, &option_search_ico_file }, \