diff --git a/content/settings.xul b/content/settings.xul index d284b71..ccabf3a 100644 --- a/content/settings.xul +++ b/content/settings.xul @@ -20,6 +20,7 @@ Licensed under MPL (http://www.mozilla.org/MPL/MPL-1.1.html) + @@ -33,6 +34,7 @@ Licensed under MPL (http://www.mozilla.org/MPL/MPL-1.1.html) + diff --git a/content/tabslideshow.js b/content/tabslideshow.js index 7edeebb..beda737 100644 --- a/content/tabslideshow.js +++ b/content/tabslideshow.js @@ -19,6 +19,7 @@ var tabslideshow = { refresh: false, timer: null, ignorehidden: true, + randomorder: false, // initialize the extension startup: function() @@ -36,6 +37,7 @@ var tabslideshow = { this.delay = this.prefs.getIntPref('time'); this.refresh = this.prefs.getBoolPref('refresh'); this.ignorehidden = this.prefs.getBoolPref('ignorehidden'); + this.randomorder = this.prefs.getBoolPref('randomorder'); // add tab context menu entries and hook var tabmenu = tabslideshow_gettabcontextmenu(); @@ -95,6 +97,9 @@ var tabslideshow = { case 'ignorehidden': this.ignorehidden = this.prefs.getBoolPref('ignorehidden'); break; + case 'randomorder': + this.randomorder = this.prefs.getBoolPref('randomorder'); + break; } }, @@ -172,7 +177,22 @@ var tabslideshow = { var currenttab = gBrowser.tabContainer.childNodes[currenttabnum]; // cycle all tabs or current tab group to find next viable tab - var nexttabnum = (currenttabnum + 1) % numtabs; + var nexttabnum; + if(this.randomorder) + { + if(numtabs === 1) + nexttabnum = 0; + else + { + do + { + nexttabnum = Math.floor((Math.random() * numtabs)); + + }while(nexttabnum === currenttabnum); + } + } + else + nexttabnum = (currenttabnum + 1) % numtabs; var nexttab = gBrowser.tabContainer.childNodes[nexttabnum]; while (nexttab != currenttab && this.ignorehidden && nexttab.hidden) { nexttabnum = (nexttabnum + 1) % numtabs; diff --git a/defaults/preferences/tabslideshow.js b/defaults/preferences/tabslideshow.js index a68466b..7c198d1 100644 --- a/defaults/preferences/tabslideshow.js +++ b/defaults/preferences/tabslideshow.js @@ -2,3 +2,4 @@ pref("tabslideshow.start", false); pref("tabslideshow.refresh", false); pref("tabslideshow.time", 30); pref("tabslideshow.ignorehidden", true); +pref("tabslideshow.randomorder", false);