diff --git a/CHANGELOG.md b/CHANGELOG.md
index 0d6d06c37..3936ee47e 100755
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,10 @@ The links to individual versions below are to copies of the script with the upda
### v1.10.8
+**v1.10.8.4** *(2015-04-07)* - [[Firefox](https://raw.githubusercontent.com/ccd0/4chan-x/1.10.8.4/builds/4chan-X-noupdate.user.js "Firefox version")] [[Chromium](https://raw.githubusercontent.com/ccd0/4chan-x/1.10.8.4/builds/4chan-X-noupdate.crx "Chromium version")]
+- Revert the thread watcher remembering whether it was closed or open.
+- Break up `Toggleable Thread Watcher` option into `Fixed Thread Watcher` and `Toggleable Thread Watcher`.
+
**v1.10.8.3** *(2015-04-06)* - [[Firefox](https://raw.githubusercontent.com/ccd0/4chan-x/1.10.8.3/builds/4chan-X-noupdate.user.js "Firefox version")] [[Chromium](https://raw.githubusercontent.com/ccd0/4chan-x/1.10.8.3/builds/4chan-X-noupdate.crx "Chromium version")]
- Don't clear the unread count of 404'd threads in the thread watcher until they're visited.
diff --git a/builds/4chan-X-beta.crx b/builds/4chan-X-beta.crx
index 47472e2ef..fca13d50d 100644
Binary files a/builds/4chan-X-beta.crx and b/builds/4chan-X-beta.crx differ
diff --git a/builds/4chan-X-beta.meta.js b/builds/4chan-X-beta.meta.js
index d64158133..88a91dea9 100644
--- a/builds/4chan-X-beta.meta.js
+++ b/builds/4chan-X-beta.meta.js
@@ -1,6 +1,6 @@
// ==UserScript==
// @name 4chan X beta
-// @version 1.10.8.3
+// @version 1.10.8.4
// @minGMVer 1.14
// @minFFVer 26
// @namespace 4chan-X
diff --git a/builds/4chan-X-beta.user.js b/builds/4chan-X-beta.user.js
index b280fe2d6..e38d2d65b 100644
--- a/builds/4chan-X-beta.user.js
+++ b/builds/4chan-X-beta.user.js
@@ -1,7 +1,7 @@
// Generated by CoffeeScript
// ==UserScript==
// @name 4chan X beta
-// @version 1.10.8.3
+// @version 1.10.8.4
// @minGMVer 1.14
// @minFFVer 26
// @namespace 4chan-X
@@ -215,7 +215,8 @@
'Page Count in Stats': [true, 'Display the page count in the thread stats.', 1],
'Updater and Stats in Header': [true, 'Places the thread updater and thread stats in the header instead of floating them.'],
'Thread Watcher': [true, 'Bookmark threads.'],
- 'Toggleable Thread Watcher': [true, 'Adds a shortcut for the thread watcher, hides the watcher by default, and makes it scroll with the page.', 1],
+ 'Fixed Thread Watcher': [null, 'Makes the thread watcher scroll with the page.', 1],
+ 'Toggleable Thread Watcher': [true, 'Adds a shortcut for the thread watcher and hides the watcher by default.', 1],
'Mark New IPs': [false, 'Label each post from a new IP with the thread\'s current IP count.']
},
'Posting': {
@@ -278,7 +279,6 @@
'Auto Prune': [false, 'Automatically remove dead threads.'],
'Show Unread Count': [true, 'Show number of unread posts in watched threads.']
},
- 'Thread Watcher Hidden': true,
filter: {
name: "# Filter any namefags:\n#/^(?!Anonymous$)/",
uniqueID: "# Filter a specific ID:\n#/Txhvk1Tl/",
@@ -396,7 +396,7 @@
doc = d.documentElement;
g = {
- VERSION: '1.10.8.3',
+ VERSION: '1.10.8.4',
NAMESPACE: '4chan X.',
boards: {}
};
@@ -12414,14 +12414,10 @@
this.refreshButton = $('.refresh', this.dialog);
this.closeButton = $('.move > .close', this.dialog);
this.unreaddb = Unread.db || new DataBoard('lastReadPosts');
- if (Conf['Toggleable Thread Watcher']) {
- this.setHidden(Conf['Thread Watcher Hidden']);
- $.sync('Thread Watcher Hidden', this.setHidden);
- }
$.on(d, 'QRPostSuccessful', this.cb.post);
- $.on(sc, 'click', this.toggleHidden);
+ $.on(sc, 'click', this.toggleWatcher);
$.on(this.refreshButton, 'click', this.fetchAllStatus);
- $.on(this.closeButton, 'click', this.toggleHidden);
+ $.on(this.closeButton, 'click', this.toggleWatcher);
$.on(d, '4chanXInitFinished', this.ready);
switch (g.VIEW) {
case 'index':
@@ -12430,10 +12426,14 @@
case 'thread':
$.on(d, 'ThreadUpdate', this.cb.onThreadRefresh);
}
- if (Conf['Toggleable Thread Watcher']) {
- Header.addShortcut(sc);
+ if (Conf['Fixed Thread Watcher']) {
$.addClass(doc, 'fixed-watcher');
}
+ if (Conf['Toggleable Thread Watcher']) {
+ this.dialog.hidden = true;
+ Header.addShortcut(sc);
+ $.addClass(doc, 'toggleable-watcher');
+ }
ThreadWatcher.fetchAuto();
if (g.VIEW === 'index' && Conf['JSON Navigation'] && Conf['Menu'] && g.BOARD.ID !== 'f') {
Menu.menu.addEntry({
@@ -12526,16 +12526,9 @@
return $["delete"]('AutoWatch');
});
},
- setHidden: function(hide) {
- ThreadWatcher.shortcut.classList.toggle('disabled', hide);
- ThreadWatcher.dialog.hidden = hide;
- return Conf['Thread Watcher Hidden'] = hide;
- },
- toggleHidden: function() {
- var hide;
- hide = !ThreadWatcher.dialog.hidden;
- ThreadWatcher.setHidden(hide);
- return $.set('Thread Watcher Hidden', hide);
+ toggleWatcher: function() {
+ $.toggleClass(ThreadWatcher.shortcut, 'disabled');
+ return ThreadWatcher.dialog.hidden = !ThreadWatcher.dialog.hidden;
},
cb: {
openAll: function() {
@@ -16085,6 +16078,9 @@
Conf['selectedArchives'] = {};
$.get(Conf, function(items) {
$.extend(Conf, items);
+ if (Conf['Fixed Thread Watcher'] == null) {
+ Conf['Fixed Thread Watcher'] = Conf['Toggleable Thread Watcher'];
+ }
return $.asap((function() {
return doc = d.documentElement;
}), Main.initFeatures);
@@ -17784,7 +17780,7 @@
":root.fixed-watcher #thread-watcher {\n" +
" position: fixed;\n" +
"}\n" +
-":root:not(.fixed-watcher) #thread-watcher:not(:hover) {\n" +
+":root:not(.toggleable-watcher) #thread-watcher:not(:hover) {\n" +
" max-height: 210px;\n" +
" overflow-y: hidden;\n" +
"}\n" +
@@ -17818,7 +17814,7 @@
"#thread-watcher a {\n" +
" text-decoration: none;\n" +
"}\n" +
-":root:not(.fixed-watcher) #thread-watcher .move > .close {\n" +
+":root:not(.toggleable-watcher) #thread-watcher .move > .close {\n" +
" display: none;\n" +
"}\n" +
"#thread-watcher .move > .close {\n" +
diff --git a/builds/4chan-X-noupdate.crx b/builds/4chan-X-noupdate.crx
index 5b2a859ad..7697cd9b9 100644
Binary files a/builds/4chan-X-noupdate.crx and b/builds/4chan-X-noupdate.crx differ
diff --git a/builds/4chan-X-noupdate.user.js b/builds/4chan-X-noupdate.user.js
index 605d6efbd..9b67c070b 100644
--- a/builds/4chan-X-noupdate.user.js
+++ b/builds/4chan-X-noupdate.user.js
@@ -1,7 +1,7 @@
// Generated by CoffeeScript
// ==UserScript==
// @name 4chan X
-// @version 1.10.8.3
+// @version 1.10.8.4
// @minGMVer 1.14
// @minFFVer 26
// @namespace 4chan-X
@@ -214,7 +214,8 @@
'Page Count in Stats': [true, 'Display the page count in the thread stats.', 1],
'Updater and Stats in Header': [true, 'Places the thread updater and thread stats in the header instead of floating them.'],
'Thread Watcher': [true, 'Bookmark threads.'],
- 'Toggleable Thread Watcher': [true, 'Adds a shortcut for the thread watcher, hides the watcher by default, and makes it scroll with the page.', 1],
+ 'Fixed Thread Watcher': [null, 'Makes the thread watcher scroll with the page.', 1],
+ 'Toggleable Thread Watcher': [true, 'Adds a shortcut for the thread watcher and hides the watcher by default.', 1],
'Mark New IPs': [false, 'Label each post from a new IP with the thread\'s current IP count.']
},
'Posting': {
@@ -277,7 +278,6 @@
'Auto Prune': [false, 'Automatically remove dead threads.'],
'Show Unread Count': [true, 'Show number of unread posts in watched threads.']
},
- 'Thread Watcher Hidden': true,
filter: {
name: "# Filter any namefags:\n#/^(?!Anonymous$)/",
uniqueID: "# Filter a specific ID:\n#/Txhvk1Tl/",
@@ -395,7 +395,7 @@
doc = d.documentElement;
g = {
- VERSION: '1.10.8.3',
+ VERSION: '1.10.8.4',
NAMESPACE: '4chan X.',
boards: {}
};
@@ -12413,14 +12413,10 @@
this.refreshButton = $('.refresh', this.dialog);
this.closeButton = $('.move > .close', this.dialog);
this.unreaddb = Unread.db || new DataBoard('lastReadPosts');
- if (Conf['Toggleable Thread Watcher']) {
- this.setHidden(Conf['Thread Watcher Hidden']);
- $.sync('Thread Watcher Hidden', this.setHidden);
- }
$.on(d, 'QRPostSuccessful', this.cb.post);
- $.on(sc, 'click', this.toggleHidden);
+ $.on(sc, 'click', this.toggleWatcher);
$.on(this.refreshButton, 'click', this.fetchAllStatus);
- $.on(this.closeButton, 'click', this.toggleHidden);
+ $.on(this.closeButton, 'click', this.toggleWatcher);
$.on(d, '4chanXInitFinished', this.ready);
switch (g.VIEW) {
case 'index':
@@ -12429,10 +12425,14 @@
case 'thread':
$.on(d, 'ThreadUpdate', this.cb.onThreadRefresh);
}
- if (Conf['Toggleable Thread Watcher']) {
- Header.addShortcut(sc);
+ if (Conf['Fixed Thread Watcher']) {
$.addClass(doc, 'fixed-watcher');
}
+ if (Conf['Toggleable Thread Watcher']) {
+ this.dialog.hidden = true;
+ Header.addShortcut(sc);
+ $.addClass(doc, 'toggleable-watcher');
+ }
ThreadWatcher.fetchAuto();
if (g.VIEW === 'index' && Conf['JSON Navigation'] && Conf['Menu'] && g.BOARD.ID !== 'f') {
Menu.menu.addEntry({
@@ -12525,16 +12525,9 @@
return $["delete"]('AutoWatch');
});
},
- setHidden: function(hide) {
- ThreadWatcher.shortcut.classList.toggle('disabled', hide);
- ThreadWatcher.dialog.hidden = hide;
- return Conf['Thread Watcher Hidden'] = hide;
- },
- toggleHidden: function() {
- var hide;
- hide = !ThreadWatcher.dialog.hidden;
- ThreadWatcher.setHidden(hide);
- return $.set('Thread Watcher Hidden', hide);
+ toggleWatcher: function() {
+ $.toggleClass(ThreadWatcher.shortcut, 'disabled');
+ return ThreadWatcher.dialog.hidden = !ThreadWatcher.dialog.hidden;
},
cb: {
openAll: function() {
@@ -16084,6 +16077,9 @@
Conf['selectedArchives'] = {};
$.get(Conf, function(items) {
$.extend(Conf, items);
+ if (Conf['Fixed Thread Watcher'] == null) {
+ Conf['Fixed Thread Watcher'] = Conf['Toggleable Thread Watcher'];
+ }
return $.asap((function() {
return doc = d.documentElement;
}), Main.initFeatures);
@@ -17783,7 +17779,7 @@
":root.fixed-watcher #thread-watcher {\n" +
" position: fixed;\n" +
"}\n" +
-":root:not(.fixed-watcher) #thread-watcher:not(:hover) {\n" +
+":root:not(.toggleable-watcher) #thread-watcher:not(:hover) {\n" +
" max-height: 210px;\n" +
" overflow-y: hidden;\n" +
"}\n" +
@@ -17817,7 +17813,7 @@
"#thread-watcher a {\n" +
" text-decoration: none;\n" +
"}\n" +
-":root:not(.fixed-watcher) #thread-watcher .move > .close {\n" +
+":root:not(.toggleable-watcher) #thread-watcher .move > .close {\n" +
" display: none;\n" +
"}\n" +
"#thread-watcher .move > .close {\n" +
diff --git a/builds/4chan-X.crx b/builds/4chan-X.crx
index 5775c2234..ec3cd6621 100644
Binary files a/builds/4chan-X.crx and b/builds/4chan-X.crx differ
diff --git a/builds/4chan-X.meta.js b/builds/4chan-X.meta.js
index 62a45d007..ef9e992d2 100644
--- a/builds/4chan-X.meta.js
+++ b/builds/4chan-X.meta.js
@@ -1,6 +1,6 @@
// ==UserScript==
// @name 4chan X
-// @version 1.10.8.3
+// @version 1.10.8.4
// @minGMVer 1.14
// @minFFVer 26
// @namespace 4chan-X
diff --git a/builds/4chan-X.user.js b/builds/4chan-X.user.js
index 94367aeb7..7164006a1 100644
--- a/builds/4chan-X.user.js
+++ b/builds/4chan-X.user.js
@@ -1,7 +1,7 @@
// Generated by CoffeeScript
// ==UserScript==
// @name 4chan X
-// @version 1.10.8.3
+// @version 1.10.8.4
// @minGMVer 1.14
// @minFFVer 26
// @namespace 4chan-X
@@ -215,7 +215,8 @@
'Page Count in Stats': [true, 'Display the page count in the thread stats.', 1],
'Updater and Stats in Header': [true, 'Places the thread updater and thread stats in the header instead of floating them.'],
'Thread Watcher': [true, 'Bookmark threads.'],
- 'Toggleable Thread Watcher': [true, 'Adds a shortcut for the thread watcher, hides the watcher by default, and makes it scroll with the page.', 1],
+ 'Fixed Thread Watcher': [null, 'Makes the thread watcher scroll with the page.', 1],
+ 'Toggleable Thread Watcher': [true, 'Adds a shortcut for the thread watcher and hides the watcher by default.', 1],
'Mark New IPs': [false, 'Label each post from a new IP with the thread\'s current IP count.']
},
'Posting': {
@@ -278,7 +279,6 @@
'Auto Prune': [false, 'Automatically remove dead threads.'],
'Show Unread Count': [true, 'Show number of unread posts in watched threads.']
},
- 'Thread Watcher Hidden': true,
filter: {
name: "# Filter any namefags:\n#/^(?!Anonymous$)/",
uniqueID: "# Filter a specific ID:\n#/Txhvk1Tl/",
@@ -396,7 +396,7 @@
doc = d.documentElement;
g = {
- VERSION: '1.10.8.3',
+ VERSION: '1.10.8.4',
NAMESPACE: '4chan X.',
boards: {}
};
@@ -12414,14 +12414,10 @@
this.refreshButton = $('.refresh', this.dialog);
this.closeButton = $('.move > .close', this.dialog);
this.unreaddb = Unread.db || new DataBoard('lastReadPosts');
- if (Conf['Toggleable Thread Watcher']) {
- this.setHidden(Conf['Thread Watcher Hidden']);
- $.sync('Thread Watcher Hidden', this.setHidden);
- }
$.on(d, 'QRPostSuccessful', this.cb.post);
- $.on(sc, 'click', this.toggleHidden);
+ $.on(sc, 'click', this.toggleWatcher);
$.on(this.refreshButton, 'click', this.fetchAllStatus);
- $.on(this.closeButton, 'click', this.toggleHidden);
+ $.on(this.closeButton, 'click', this.toggleWatcher);
$.on(d, '4chanXInitFinished', this.ready);
switch (g.VIEW) {
case 'index':
@@ -12430,10 +12426,14 @@
case 'thread':
$.on(d, 'ThreadUpdate', this.cb.onThreadRefresh);
}
- if (Conf['Toggleable Thread Watcher']) {
- Header.addShortcut(sc);
+ if (Conf['Fixed Thread Watcher']) {
$.addClass(doc, 'fixed-watcher');
}
+ if (Conf['Toggleable Thread Watcher']) {
+ this.dialog.hidden = true;
+ Header.addShortcut(sc);
+ $.addClass(doc, 'toggleable-watcher');
+ }
ThreadWatcher.fetchAuto();
if (g.VIEW === 'index' && Conf['JSON Navigation'] && Conf['Menu'] && g.BOARD.ID !== 'f') {
Menu.menu.addEntry({
@@ -12526,16 +12526,9 @@
return $["delete"]('AutoWatch');
});
},
- setHidden: function(hide) {
- ThreadWatcher.shortcut.classList.toggle('disabled', hide);
- ThreadWatcher.dialog.hidden = hide;
- return Conf['Thread Watcher Hidden'] = hide;
- },
- toggleHidden: function() {
- var hide;
- hide = !ThreadWatcher.dialog.hidden;
- ThreadWatcher.setHidden(hide);
- return $.set('Thread Watcher Hidden', hide);
+ toggleWatcher: function() {
+ $.toggleClass(ThreadWatcher.shortcut, 'disabled');
+ return ThreadWatcher.dialog.hidden = !ThreadWatcher.dialog.hidden;
},
cb: {
openAll: function() {
@@ -16085,6 +16078,9 @@
Conf['selectedArchives'] = {};
$.get(Conf, function(items) {
$.extend(Conf, items);
+ if (Conf['Fixed Thread Watcher'] == null) {
+ Conf['Fixed Thread Watcher'] = Conf['Toggleable Thread Watcher'];
+ }
return $.asap((function() {
return doc = d.documentElement;
}), Main.initFeatures);
@@ -17784,7 +17780,7 @@
":root.fixed-watcher #thread-watcher {\n" +
" position: fixed;\n" +
"}\n" +
-":root:not(.fixed-watcher) #thread-watcher:not(:hover) {\n" +
+":root:not(.toggleable-watcher) #thread-watcher:not(:hover) {\n" +
" max-height: 210px;\n" +
" overflow-y: hidden;\n" +
"}\n" +
@@ -17818,7 +17814,7 @@
"#thread-watcher a {\n" +
" text-decoration: none;\n" +
"}\n" +
-":root:not(.fixed-watcher) #thread-watcher .move > .close {\n" +
+":root:not(.toggleable-watcher) #thread-watcher .move > .close {\n" +
" display: none;\n" +
"}\n" +
"#thread-watcher .move > .close {\n" +
diff --git a/builds/4chan-X.zip b/builds/4chan-X.zip
index 2e338fe4e..386cffe08 100644
Binary files a/builds/4chan-X.zip and b/builds/4chan-X.zip differ
diff --git a/builds/updates-beta.xml b/builds/updates-beta.xml
index fb0a68f6a..4c0e2396c 100644
--- a/builds/updates-beta.xml
+++ b/builds/updates-beta.xml
@@ -1,7 +1,7 @@
-
+
diff --git a/builds/updates.xml b/builds/updates.xml
index fc4fb49b9..226d893e3 100644
--- a/builds/updates.xml
+++ b/builds/updates.xml
@@ -1,7 +1,7 @@
-
+
diff --git a/package.json b/package.json
index 5ef193868..776a185c6 100755
--- a/package.json
+++ b/package.json
@@ -3,8 +3,8 @@
"description": "Cross-browser userscript for maximum lurking on 4chan.",
"meta": {
"name": "4chan X",
- "version": "1.10.8.3",
- "date": "2015-04-07T03:32:40.973Z",
+ "version": "1.10.8.4",
+ "date": "2015-04-07T17:12:55.046Z",
"repo": "https://github.com/ccd0/4chan-x/",
"page": "https://github.com/ccd0/4chan-x",
"downloads": "https://ccd0.github.io/4chan-x/builds/",