User:Fyan/Improving Tab Hierarchy

From MozillaWiki
Revision as of 23:01, 12 July 2010 by Fyan (talk | contribs) (Created page with 'openNewTab(newTab, trigger): IF trigger = newTabButton: openTab('about:blank') ELSE: openTab('about:blank', { opener : tab, position : tab.position + 1 })…')
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

openNewTab(newTab, trigger):

   IF trigger = newTabButton:
       openTab('about:blank')
   ELSE:
       openTab('about:blank', { opener : tab, position : tab.position + 1 })

onOpenLinkInNewTab(newTab, openerTab):

   newTab.opener := openerTab

onTabClose(closedTab):

   FOR EACH tab IN tabs:
       IF tab.opener = closedTab:
           tab.opener := closedTab.opener
   prev := closedTab.prevSibling
   next := closedTab.nextSibling
   IF next AND next.opener AND next.opener = closedTab.opener:
       selectTab(next)
   ELSE IF prev AND prev.opener AND prev.opener = closedTab.opener:
       selectTab(prev)
   ELSE IF prev AND prev = closedTab.opener:
       selectTab(prev)
   ELSE IF next:
       selectTab(next)
   ELSE IF prev:
       selectTab(prev)
   ELSE IF pref('closeWindowWithLastTab'):
       closeWindow()
   ELSE:
       openTab('about:blank')

onTabSelect(from, to):

   IF from.opener = to
   OR to.opener = from
   OR from.opener = to.opener:
       RETURN
   ELSE:
       FOR EACH tab IN tabs:
           tab.opener := NULL

onTabMove():

   FOR EACH tab IN tabs:
       tab.opener := NULL