バグ | |
![]()
localkeymode.js か feedSomeKeys_2.js 関連?
突然ローカルなマッピングが解除されなくなってしまうことがある。
再現方法がわからなくて困り中。
マッピングが突然おかしくなる問題 - Death to false Web browser! - vimperatorグループ
この件は
Index: localkeymode.js
===================================================================
--- localkeymode.js (revision 35982)
+++ localkeymode.js (working copy)
@@ -244,7 +244,7 @@
loadKeyMap: function() {
var self = this;
// 暫定処置
- //if (liberator.plugins.feedKey && liberator.plugins.feedKey.origMap.length >0) return;
+ if (liberator.plugins.feedKey && liberator.plugins.feedKey.origMap.length >0) return;
this.helpstring = '';
if (this.isBinding) this.restoreKeyMap();
if (!this.isEnable) {
で、なおった。
しかし、この処理の意味がよくわからない。*1
コメントにちゃんと書いておけば良かった。
*1:自分が書いたコードだと思うんだけど…
原因と思われるのは fmapc と localkeymode.js のバインディング解除の実行順序の問題。
おそらく内部的には TabLeave→fmapc→fmap→localkeymode.jsのバインディング解除の順に動作してしまっているため、キーバインディングがめちゃくちゃになることがあるような気がします(ちゃんと検証してないけど、多分こんな感じ)。
根本的な解決としては、fmapc に localkeymode をHookするか、そもそもキーバインディングを別の箇所でやるか、それならページ単位でキーバインディングをするAPIみたいのを作りたいなぁ~、、、とかいろいろ考えた挙げ句、どうにもしっくりする解決方が見つからなかったので放置。。。という感じです。
しかし、最近になってダメになったのはなんでだろう。
スマートな解決方法がほしいところですねぇ。