diff options
author | anekos | 2008-12-10 13:47:39 +0000 |
---|---|---|
committer | anekos | 2008-12-10 13:47:39 +0000 |
commit | 4dd0b7bfef72f78c754fef56bbc5eb14ca38b074 (patch) | |
tree | c2713e8e5c54553ad14a8f592a7b0e94f2ef4a19 /asdfghjkl.js | |
parent | 34b1a8be8f4478752b393147ce60d3e1ea840d49 (diff) | |
download | vimperator-plugins-4dd0b7bfef72f78c754fef56bbc5eb14ca38b074.tar.bz2 |
問題が起きにくいようにしたつもり。
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@26323 d0d07461-0603-4401-acd4-de1884942a52
Diffstat (limited to 'asdfghjkl.js')
-rw-r--r-- | asdfghjkl.js | 26 |
1 files changed, 15 insertions, 11 deletions
diff --git a/asdfghjkl.js b/asdfghjkl.js index 75cbddf..b1b64fd 100644 --- a/asdfghjkl.js +++ b/asdfghjkl.js @@ -3,7 +3,7 @@ // @description Inputting numbers by asdfghjkl; keys in hint mode. // @description-ja Hintモードで、asdfghjkl;キーを使って数字入力をする。 // @license Creative Commons 2.1 (Attribution + Share Alike) -// @version 1.3 +// @version 1.4 // @minVersion 2.0pre // @maxVersion 2.0pre // @author anekos (anekos@snca.net) @@ -45,12 +45,16 @@ let asdfghjkl_hintchars = liberator.globalVariables.asdfghjkl_hintchars || ";asdfghjkl"; let active = false; - let original = { - show: hints.show, - onKeyPress: events.onKeyPress, - }; + function around (obj, name, func) { + let next = obj[name]; + obj[name] = function () + let (self = this, args = arguments) + func.call(self, + function () next.apply(self, args), + args); + } - events.onKeyPress = function (event) { + around(events, 'onKeyPress', function (next, [event]) { if (modes.extended & modes.HINTS) { let act = active; let key = events.toString(event); @@ -76,12 +80,12 @@ } } } - return original.onKeyPress.call(this, event); - }; + return next(); + }); - hints.show = function () { + around(hints, 'show', function (next) { active = asdfghjkl_default; - return original.show.apply(this, arguments); - }; + return next(); + }); })(); |