diff options
author | Chris Young <chris@unsatisfactorysoftware.co.uk> | 2011-07-02 22:04:51 +0000 |
---|---|---|
committer | Chris Young <chris@unsatisfactorysoftware.co.uk> | 2011-07-02 22:04:51 +0000 |
commit | bdc0d994c117d80a7cd18ae9755978e532736376 (patch) | |
tree | dd4db253e900f3127533318459755b4b1ae629b4 /amiga | |
parent | 910c6d314fc356a8b8628b3ff7b26c3ff289a4dd (diff) | |
download | netsurf-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-x | amiga/gui.c | 9 | ||||
-rwxr-xr-x | amiga/gui_options.c | 19 | ||||
-rw-r--r-- | amiga/options.h | 3 |
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 }, \ |