aboutsummaryrefslogtreecommitdiffhomepage
path: root/examples
diff options
context:
space:
mode:
authorGravatar keis <keijser@gmail.com>2011-02-26 23:56:20 +0100
committerGravatar keis <keijser@gmail.com>2011-02-26 23:56:20 +0100
commitd86a69f6a105f611e49ecb10d206933cfdd7f90a (patch)
tree7c5a74b656611158fe8ed293ec30cc6f4f02d3a5 /examples
parent80fda6e7880e598be9f7e7425e66c7b7eaa04e2a (diff)
bring back mode change hints in follow.js
Diffstat (limited to 'examples')
-rw-r--r--examples/data/scripts/follow.js39
1 files changed, 23 insertions, 16 deletions
diff --git a/examples/data/scripts/follow.js b/examples/data/scripts/follow.js
index b0c4643..2976834 100644
--- a/examples/data/scripts/follow.js
+++ b/examples/data/scripts/follow.js
@@ -35,8 +35,7 @@ uzbl.follow = function() {
}
} catch(e) {}
- arguments.callee.followLinks(keypress);
-
+ return arguments.callee.followLinks(keypress);
}
// Calculate element position to draw the hint
@@ -120,26 +119,34 @@ uzbl.follow.generateHint = function(el, label) {
uzbl.follow.clickElem = function(item) {
this.removeAllHints();
if (item) {
- if (newwindow && item.tagName == 'A') window.open(item.href);
+ if (newwindow && item.tagName == 'A') {
+ window.open(item.href);
+ return "XXXRESET_MODEXXX"
+ }
else {
var name = item.tagName;
if (name == 'A') {
item.click();
window.location = item.href;
+ return "XXXRESET_MODEXXX";
} else if (name == 'INPUT') {
var type = item.getAttribute('type').toUpperCase();
if (type == 'TEXT' || type == 'FILE' || type == 'PASSWORD') {
item.focus();
item.select();
+ return "XXXEMIT_FORM_ACTIVEXXX";
} else {
item.click();
+ return "XXXRESET_MODEXXX";
}
} else if (name == 'TEXTAREA' || name == 'SELECT') {
item.focus();
item.select();
+ return "XXXEMIT_FORM_ACTIVEXXX";
} else {
item.click();
window.location = item.href;
+ return "XXXRESET_MODEXXX";
}
}
}
@@ -237,19 +244,19 @@ uzbl.follow.followLinks = function(follow) {
var len = this.labelLength(elems[0].length);
var oldDiv = doc.getElementById(uzbldivid);
var leftover = [[], []];
- if (s.length == len && linknr < elems[0].length && linknr >= 0) this.clickElem(elems[0][linknr]);
- else {
- for (var j = 0; j < elems[0].length; j++) {
- var b = true;
- var label = this.intToLabel(j);
- var n = label.length;
- for (n; n < len; n++) label = charset.charAt(0) + label;
- for (var k = 0; k < s.length; k++) b = b && label.charAt(k) == s[k];
- if (b) {
- leftover[0].push(elems[0][j]);
- leftover[1].push(label);
- }
+ if (s.length == len && linknr < elems[0].length && linknr >= 0)
+ return this.clickElem(elems[0][linknr]);
+
+ for (var j = 0; j < elems[0].length; j++) {
+ var b = true;
+ var label = this.intToLabel(j);
+ var n = label.length;
+ for (n; n < len; n++) label = charset.charAt(0) + label;
+ for (var k = 0; k < s.length; k++) b = b && label.charAt(k) == s[k];
+ if (b) {
+ leftover[0].push(elems[0][j]);
+ leftover[1].push(label);
}
- this.reDrawHints(leftover, s.length);
}
+ this.reDrawHints(leftover, s.length);
}