summaryrefslogtreecommitdiff
path: root/amiga
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 /amiga
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
Diffstat (limited to 'amiga')
-rwxr-xr-xamiga/gui.c9
-rwxr-xr-xamiga/gui_options.c19
-rw-r--r--amiga/options.h3
3 files changed, 28 insertions, 3 deletions
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 }, \