diff options
author | Chris Young <chris@unsatisfactorysoftware.co.uk> | 2010-02-14 15:32:54 +0000 |
---|---|---|
committer | Chris Young <chris@unsatisfactorysoftware.co.uk> | 2010-02-14 15:32:54 +0000 |
commit | da54611fb64287eca1898edf809f1c627a91558a (patch) | |
tree | f30404c8f5997cf1a9c7c1f3806e4dc7eaeb455e /amiga | |
parent | 869d333a5198002ebc0ff21a4b4e77273a0f8d65 (diff) | |
download | netsurf-da54611fb64287eca1898edf809f1c627a91558a.tar.gz netsurf-da54611fb64287eca1898edf809f1c627a91558a.tar.bz2 |
Try to avoid the tab switching if closing a tab other than the current one (doesn't
seem to work, the act of clicking close must implicity switch to that tab)
Remove extraneous Add Tab button layout group
svn path=/trunk/netsurf/; revision=10058
Diffstat (limited to 'amiga')
-rwxr-xr-x | amiga/gui.c | 36 | ||||
-rwxr-xr-x | amiga/gui.h | 1 |
2 files changed, 23 insertions, 14 deletions
diff --git a/amiga/gui.c b/amiga/gui.c index f1666579f..230efb89c 100755 --- a/amiga/gui.c +++ b/amiga/gui.c @@ -2114,9 +2114,14 @@ void ami_toggletabbar(struct gui_window_2 *gwin, bool show) if(show) { - SetAttrs(gwin->objects[GID_TABLAYOUT], - LAYOUT_Inverted, TRUE, - TAG_DONE); + struct TagItem attrs[3]; + + attrs[0].ti_Tag = CHILD_WeightedWidth; + attrs[0].ti_Data = 0; + attrs[1].ti_Tag = CHILD_WeightedHeight; + attrs[1].ti_Data = 0; + attrs[2].ti_Tag = TAG_DONE; + attrs[2].ti_Data = 0; gwin->objects[GID_TABS] = ClickTabObject, GA_ID, GID_TABS, @@ -2139,15 +2144,15 @@ void ami_toggletabbar(struct gui_window_2 *gwin, bool show) IDoMethod(gwin->objects[GID_TABLAYOUT], LM_ADDCHILD, gwin->win, gwin->objects[GID_TABS], NULL); - IDoMethod(gwin->objects[GID_ADDTABLAYOUT], LM_ADDCHILD, - gwin->win, gwin->objects[GID_ADDTAB], NULL); + IDoMethod(gwin->objects[GID_TABLAYOUT], LM_ADDCHILD, + gwin->win, gwin->objects[GID_ADDTAB], attrs); } else { IDoMethod(gwin->objects[GID_TABLAYOUT], LM_REMOVECHILD, gwin->win, gwin->objects[GID_TABS]); - IDoMethod(gwin->objects[GID_ADDTABLAYOUT], LM_REMOVECHILD, + IDoMethod(gwin->objects[GID_TABLAYOUT], LM_REMOVECHILD, gwin->win, gwin->objects[GID_ADDTAB]); } @@ -2604,9 +2609,7 @@ struct gui_window *gui_create_browser_window(struct browser_window *bw, addtabclosegadget, gwin->shared->objects[GID_TABS], CHILD_CacheDomain,FALSE, - LAYOUT_AddChild, gwin->shared->objects[GID_ADDTABLAYOUT] = HGroupObject, - addtabclosegadget, gwin->shared->objects[GID_ADDTAB], - LayoutEnd, + addtabclosegadget, gwin->shared->objects[GID_ADDTAB], CHILD_WeightedWidth,0, CHILD_WeightedHeight,0, LayoutEnd, @@ -2845,7 +2848,7 @@ void ami_close_all_tabs(struct gui_window_2 *gwin) void gui_window_destroy(struct gui_window *g) { struct Node *ptab; - ULONG ptabnum; + ULONG ptabnum = 0; if(!g) return; @@ -2871,10 +2874,17 @@ void gui_window_destroy(struct gui_window *g) CLICKTAB_Labels,~0, TAG_DONE); - ptab = GetSucc(g->tab_node); - if(!ptab) ptab = GetPred(g->tab_node); + GetAttr(CLICKTAB_Current, g->shared->objects[GID_TABS], + (ULONG *)&ptabnum); + + if(ptabnum == g->tab) + { + ptab = GetSucc(g->tab_node); + if(!ptab) ptab = GetPred(g->tab_node); + + GetClickTabNodeAttrs(ptab,TNA_Number,(ULONG *)&ptabnum,TAG_DONE); + } - GetClickTabNodeAttrs(ptab,TNA_Number,(ULONG *)&ptabnum,TAG_DONE); Remove(g->tab_node); FreeClickTabNode(g->tab_node); RefreshSetGadgetAttrs((struct Gadget *)g->shared->objects[GID_TABS],g->shared->win,NULL, diff --git a/amiga/gui.h b/amiga/gui.h index 01f2d9843..07f2bcd05 100755 --- a/amiga/gui.h +++ b/amiga/gui.h @@ -50,7 +50,6 @@ enum GID_CLOSETAB_BM, GID_ADDTAB, GID_ADDTAB_BM, - GID_ADDTABLAYOUT, GID_TABS, GID_TABS_FLAG, GID_USER, |