外部プログラムでフックされた場合のキー入力イベントに keyup を使う

IME and DiMENSiON という Firefox 拡張を利用してみたのだが、XKeymacs と同時に使用すると問題があった。

Ctrl-\ 等で IME を on/off しても反応しない。

入力エリアの keypress イベント時に IME 状態を取得しているようだが、XKeymacs で定義した IME on/off を実行しても keypress が発生していなかった。
同様に keydown も発生しなかったが、keyup は発生した。

以下の変更で XKeymacs と同時使用できるようになった。

--- overlay.js.org
+++ overlay.js
@@ -162,7 +162,7 @@
     return;
   }
   if(isTextInput(focusedElement)){
-    focusedElement.addEventListener('keypress',changeBGColor,false);
+    focusedElement.addEventListener('keyup',changeBGColor,false);
     focusedElement.addEventListener('blur',returnBGColor,false);
     document.getElementById("suilen").setIMEStatusToLastFO();

@@ -185,7 +185,7 @@
   document.getElementById("suilen").setIMEStatus(false);
   this.style.backgroundColor=null;
   this.style.color=null;
-  this.removeEventListener('keypress',changeBGColor,false);
+  this.removeEventListener('keyup',changeBGColor,false);
   this.removeEventListener('blur',returnBGColor,false);
 }