会社の後輩が、TiddlyWiki を使って日々のレポートを付けているのだけれど。
夜になって、周りが帰り始めたころにその彼が雄叫びを上げた。
レポートの入力中についエスケープキーを押してしまったらしい。僕もよくやる。
TW では編集中の ESC はキャンセルになってしまい。それまで書き溜めたものはどうやっても戻せない。
「なんとかなりませんかねぇ」と云うので、その場でソースを見て、Override する plugin を作ってみた。
とりあえず動く。彼にも感謝された。
ジブンもよくやるので入れておこう。
夜になって、周りが帰り始めたころにその彼が雄叫びを上げた。
レポートの入力中についエスケープキーを押してしまったらしい。僕もよくやる。
TW では編集中の ESC はキャンセルになってしまい。それまで書き溜めたものはどうやっても戻せない。
「なんとかなりませんかねぇ」と云うので、その場でソースを見て、Override する plugin を作ってみた。
とりあえず動く。彼にも感謝された。
ジブンもよくやるので入れておこう。
systemConfig タグを付けて reload してください。 ver2.2.5, 2.2.6 で動作確認してます。
IgnoreEsc:
Story.prototype.onTiddlerKeyPress = function(ev)
{
var e = ev ? ev : window.event;
clearMessage();
var consume = false;
var title = this.getAttribute("tiddler");
var target = resolveTarget(e);
switch(e.keyCode) {
case 9: // Tab
if(config.options.chkInsertTabs && target.tagName.toLowerCase() == "textarea") {
replaceSelection(target,String.fromCharCode(9));
consume = true;
}
if(config.isOpera) {
target.onblur = function() {
this.focus();
this.onblur = null;
};
}
break;
case 13: // Ctrl-Enter
case 10: // Ctrl-Enter on IE PC
case 77: // Ctrl-Enter is "M" on some platforms
if(e.ctrlKey) {
blurElement(this);
config.macros.toolbar.invokeCommand(this,"defaultCommand",e);
consume = true;
}
break;
//case 27: // Escape
//ここを潰した
}
e.cancelBubble = consume;
if(consume) {
if(e.stopPropagation) e.stopPropagation(); // Stop Propagation
e.returnValue = true; // Cancel The Event in IE
if(e.preventDefault ) e.preventDefault(); // Cancel The Event in Moz
}
return !consume;
};
注意: なにぶん 3分Hacking です。問題が起こっても関知しませんyo

コメントする