設定ミスかと思いアドオンの設定を見てみましたが、特に原因が見あたらないので困っています。併用するにあたってこうしたらよい、という解決方法を教えて下さい!
普段Ctrl+F4を押さないので気づかなかったのですが、確かに症状が出ますね・・・
色々と試しているうちに偶然解決(?)出来たので回答を。
あくまで対処療法 & 慣れてないと結構面倒なのでご了承の上どうぞ。
以下、Firefoxのインストールフォルダを$FIREFOX_HOMEとします。
FireFoxを終了した状態でお試しアレ。
1. $FIREFOX_HOME/chrome/browser.jarを解凍
jarファイルはzipと同等な為、Lhaplus等の解凍ソフトで解凍可能です。
2. content/browser/tabbrowser.xmlを編集
2406行:
document.addEventListener("keypress", this._keyEventHandler, false);
↓
// document.addEventListener("keypress", this._keyEventHandler, false);
3. 再圧縮
cd $FIREFOX_HOME/chrome jar -c0f browser.jar content
jarコマンドはJDKが入っていないと使えないのでその場合はLhaplusで再圧縮でもいけるかも。
圧縮は多少ではあるが起動時の速度低下に繋がるのでJDKを入れてみるのも一つの手。
(jarコマンドに-0パラメータをつけると圧縮せずにアーカイブだけを行います)
以下なんとなくな解説/感想。
F4押下時の閉じるロジックは2333行目辺りからの以下の呼び出しと思われ。
(ためしにこれをコメントアウトすると押しても閉じないように)
this.tabbrowser.removeCurrentTab();
この_keyEventHandlerメソッドをaddEventListenerしているのが今回変更した2406行目。
addEventListenerをコメントアウトした場合も閉じなくなると思ったのだが、なぜか正常にタブ一枚だけが閉じられる。(→回答できるじゃん!)
TabMixPlusを無効化すると、想定どおり閉じなくなる。
ということで、TabMixPlus/chrome/tabmixplus.jarを覗いてみた所、以下のようなコードが。
if ("_keyEventHandler" in gBrowser.mTabBox) gBrowser.mTabBox._eventNode.removeEventListener("keypress", gBrowser.mTabBox._keyEventHandler, false); else // we are after Bug 156459 fixed (2007-11-15) gBrowser.mTabBox._eventNode.removeEventListener("keypress", gBrowser.mTabBox, false); browser.addEventListener("keydown", this, true); browser.addEventListener("keypress", this, true); browser.addEventListener("keyup", this, true);
詳細は追ってないですが、なんかTMPから_keyEventHandler解除して置き換えてるようですねぇ。
SBMカウンタが入っていると、この解除に失敗でもするのか??
本体の_keyEventHandlerと、TMPの上記ソースで追加しているOnKeyPress(2509行辺り)が両方発動でもしてるのかなぁ。
丁寧な調査、ありがとうございます。