Difference between revisions of "User:Pcallaghan"

From CDOT Wiki
Jump to: navigation, search
m (added link to fsoss paper)
m (added tabs lab)
Line 11: Line 11:
 
== FSOSS paper ==
 
== FSOSS paper ==
 
[[Open content at fsoss07]]
 
[[Open content at fsoss07]]
 +
 +
==Tabs Lab==
 +
opens new tabs adjacent to the current tab, rather than at the end all the current tabs.
 +
Still has problems with closing tabs.  Sometimes they close, sometimes they don't.
 +
I thought it had something to do with line 1234.
 +
<pre>
 +
? tabslab.diff
 +
Index: content/tabbrowser.xml
 +
===================================================================
 +
RCS file: /cvsroot/mozilla/browser/base/content/tabbrowser.xml,v
 +
retrieving revision 1.243
 +
diff -u -8 -p -r1.243 tabbrowser.xml
 +
--- content/tabbrowser.xml 18 Sep 2007 00:59:41 -0000 1.243
 +
+++ content/tabbrowser.xml 7 Nov 2007 17:42:50 -0000
 +
@@ -1088,17 +1088,17 @@
 +
            if (!bgLoad) {
 +
              function selectNewForegroundTab(browser, tab) {
 +
                browser.selectedTab = tab;
 +
              }
 +
              setTimeout(selectNewForegroundTab, 0, getBrowser(), tab);
 +
            }
 +
            if (!bgLoad)
 +
              this.selectedTab = tab;
 +
-           
 +
+            var position = currentTabIndex + 1;
 +
            return tab;
 +
          ]]>
 +
        </body>
 +
      </method>
 +
 +
      <method name="loadTabs">
 +
        <parameter name="aURIs"/>
 +
        <parameter name="aLoadInBackground"/>
 +
@@ -1173,18 +1173,18 @@
 +
            t.maxWidth = this.mTabContainer.mTabMaxWidth;
 +
            t.minWidth = this.mTabContainer.mTabMinWidth;
 +
            t.width = 0;
 +
            t.setAttribute("flex", "100");
 +
            t.setAttribute("validate", "never");
 +
            t.setAttribute("onerror", "this.parentNode.parentNode.parentNode.parentNode.addToMissedIconCache(this.getAttribute('image')); this.removeAttribute('image');");
 +
            t.className = "tabbrowser-tab";
 +
 +
-            this.mTabContainer.appendChild(t);
 +
-
 +
+            var currentTabIndex = this.mTabContainer.selectedIndex;
 +
+ this.mTabContainer.insertBefore(t, this.mTabContainer.childNodes.item(currentTabIndex + 1));
 +
            if (document.defaultView
 +
                        .getComputedStyle(this.mTabContainer, "")
 +
                        .direction == "rtl") {
 +
              /* In RTL UI, the tab is visually added to the left side of the
 +
                * tabstrip. This means the tabstip has to be scrolled back in
 +
                * order to make sure the same set of tabs is visible before and
 +
                * after the new tab is added */
 +
 +
@@ -1234,17 +1234,17 @@
 +
            b.addEventListener("DOMTitleChanged", this.onTitleChanged, true);
 +
 +
            if (this.mStrip.collapsed)
 +
              this.setStripVisibilityTo(true);
 +
 +
            this.mPrefs.setBoolPref("browser.tabs.forceHide", false);
 +
 +
            // wire up a progress listener for the new browser object.
 +
-            var position = this.mTabContainer.childNodes.length-1;
 +
+            var position = currentTabIndex + 1;
 +
            var tabListener = this.mTabProgressListener(t, b, blank);
 +
            const filter = Components.classes["@mozilla.org/appshell/component/browser-status-filter;1"]
 +
                                      .createInstance(Components.interfaces.nsIWebProgress);
 +
            filter.addProgressListener(tabListener, Components.interfaces.nsIWebProgress.NOTIFY_ALL);
 +
            b.webProgress.addProgressListener(filter, Components.interfaces.nsIWebProgress.NOTIFY_ALL);
 +
            this.mTabListeners[position] = tabListener;
 +
            this.mTabFilters[position] = filter;
 +
 +
 +
</pre>

Revision as of 14:11, 8 November 2007

Peter Callaghan

Email

pcallagh@learn.senecac.on.ca

About me

  • Graduated CPA in April 2006
  • Transferred to BSD in Sept 2006
  • Currently enrolled in DPS909

FSOSS paper

Open content at fsoss07

Tabs Lab

opens new tabs adjacent to the current tab, rather than at the end all the current tabs. Still has problems with closing tabs. Sometimes they close, sometimes they don't. I thought it had something to do with line 1234.

? tabslab.diff
Index: content/tabbrowser.xml
===================================================================
RCS file: /cvsroot/mozilla/browser/base/content/tabbrowser.xml,v
retrieving revision 1.243
diff -u -8 -p -r1.243 tabbrowser.xml
--- content/tabbrowser.xml	18 Sep 2007 00:59:41 -0000	1.243
+++ content/tabbrowser.xml	7 Nov 2007 17:42:50 -0000
@@ -1088,17 +1088,17 @@
             if (!bgLoad) {
               function selectNewForegroundTab(browser, tab) {
                 browser.selectedTab = tab;
               }
               setTimeout(selectNewForegroundTab, 0, getBrowser(), tab);
             }
             if (!bgLoad)
               this.selectedTab = tab;
-            
+            var position = currentTabIndex + 1;
             return tab;
          ]]>
         </body>
       </method>
 
       <method name="loadTabs">
         <parameter name="aURIs"/>
         <parameter name="aLoadInBackground"/>
@@ -1173,18 +1173,18 @@
             t.maxWidth = this.mTabContainer.mTabMaxWidth;
             t.minWidth = this.mTabContainer.mTabMinWidth;
             t.width = 0;
             t.setAttribute("flex", "100");
             t.setAttribute("validate", "never");
             t.setAttribute("onerror", "this.parentNode.parentNode.parentNode.parentNode.addToMissedIconCache(this.getAttribute('image')); this.removeAttribute('image');");
             t.className = "tabbrowser-tab";
 
-            this.mTabContainer.appendChild(t);
-
+            var currentTabIndex = this.mTabContainer.selectedIndex;
+			this.mTabContainer.insertBefore(t, this.mTabContainer.childNodes.item(currentTabIndex + 1));
             if (document.defaultView
                         .getComputedStyle(this.mTabContainer, "")
                         .direction == "rtl") {
               /* In RTL UI, the tab is visually added to the left side of the
                * tabstrip. This means the tabstip has to be scrolled back in
                * order to make sure the same set of tabs is visible before and
                * after the new tab is added */
 
@@ -1234,17 +1234,17 @@
             b.addEventListener("DOMTitleChanged", this.onTitleChanged, true);
 
             if (this.mStrip.collapsed)
               this.setStripVisibilityTo(true);
 
             this.mPrefs.setBoolPref("browser.tabs.forceHide", false);
 
             // wire up a progress listener for the new browser object.
-            var position = this.mTabContainer.childNodes.length-1;
+            var position = currentTabIndex + 1;
             var tabListener = this.mTabProgressListener(t, b, blank);
             const filter = Components.classes["@mozilla.org/appshell/component/browser-status-filter;1"]
                                      .createInstance(Components.interfaces.nsIWebProgress);
             filter.addProgressListener(tabListener, Components.interfaces.nsIWebProgress.NOTIFY_ALL);
             b.webProgress.addProgressListener(filter, Components.interfaces.nsIWebProgress.NOTIFY_ALL);
             this.mTabListeners[position] = tabListener;
             this.mTabFilters[position] = filter;