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);