summaryrefslogtreecommitdiff
path: root/amiga/gui.c
diff options
context:
space:
mode:
authorChris Young <chris@unsatisfactorysoftware.co.uk>2010-02-14 15:32:54 +0000
committerChris Young <chris@unsatisfactorysoftware.co.uk>2010-02-14 15:32:54 +0000
commitda54611fb64287eca1898edf809f1c627a91558a (patch)
treef30404c8f5997cf1a9c7c1f3806e4dc7eaeb455e /amiga/gui.c
parent869d333a5198002ebc0ff21a4b4e77273a0f8d65 (diff)
downloadnetsurf-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/gui.c')
-rwxr-xr-xamiga/gui.c36
1 files changed, 23 insertions, 13 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,