パスワードを忘れた? アカウント作成
442516 journal

rutoの日記: FirefoxのRadialContext拡張の不具合への対症療法 2

日記 by ruto

Firefox用拡張でRadialContextというのがあって、これを使うと普通のコントキストメニューの代わりにドーナツ状のパイメニューがポインタの周りに出るようになる。
素晴しいのはポインタをドーナツの外に動かそうとしてもちゃんとメニューがポインタに付いてくる点で、マウスジェスチャーの感覚で使える。しかもマウスジェスチャと違ってアイコンが表示される上、ポインタを動かさないでいると説明テキストが出るので、割り当てを忘れてしまっても大丈夫。
これがあるお陰で私は他のブラウザを使えない。

だけど、けっこう前からしばらく使っていると突然メニューが動かなくなって、しかもマウスやキーボードのイベントをグラブしたままになるのでFirefoxがまともに使えなくなくなってしまう。

これじゃ使いものにならないってんで調べてみたところ、とりあえず対症療法が見付かった。
rcMenu.jsでラベルのfontWeightを設定しているところでエラーが出ていた。
設定しているところは幾つかあってその内1つでは
try {...} catch(ex) {dump("Why does setting the font weight fail sometimes?\n" + ex.toString() + "\n");}
という風に例外をキャッチしているが、その他の部分では例外をキャッチしていない。これが原因っぽい。
また、showLabelsの
this.lnode.style.lineHeight= 20*100/currentZoom+ "px";
this.lnode.style.fontSize= 8*100/currentZoom+ "pt";
の部分でも例外が起きている。
とりあえず例外が起きている部分を、try...catch...で囲むと、今のところ一応動いてる。
エラーメッセージにあるように、この例外がなぜ起きるのかは謎なので根本的な解決にはなってない。

おまけ:
application/xhtml+xmlなページでパイメニューが表示されないのは、rcIntegration.jsの
pie_context.body= pie_context.frame_doc.getElementsByTagName("BODY")[0];
というところで大文字の"BODY"を指定してるのが原因っぽい。その後に
if (!pie_context.body) {
        pie_context.body= pie_context.frame_doc.getElementsByTagName("body")[0];
}
を入れてみると表示される。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by dwolf (35812) on 2008年02月24日 22時11分 (#1302789)
    はじめまして。Radialcontextの2.0対応版 Radialcontext-Dのトラブル解決のために
    グーグル検索したらでたどり着きました
    この改善法をRadialcontext-Dに適用しようとおもったのですが
    該当するファイルが見つかりませんでした……。
    いい方法を知っていたら教えていただきたいのですが…。
    • by ruto (17678) on 2008年02月25日 21時31分 (#1303292) 日記
      Windowsの場合、Radialcontext-Dをインストールしている場合、
      C:\Documents and Settings\(ユーザ名)\Application Data\Mozilla\Firefox\Profiles\
      のもう少し下のディレクトリにradialcontext.jarというファルがあるはずです(Profilesディレクトリから検索してください)。
      (Linuxの場合は ~/.mozilla/firefox/ 以下です)
      そのファイルは実はzipファイルなので、拡張子をzipに変えるなどした後展開し、中のファイルを編集します。
      その後再びzipで固め、jarという拡張子にして、元のファイルを置き換えます。
      zipで固める際、トップに余計なディレクトリを含んでしまうと上手く認識されないので気を付けて下さい。

      もしくは、radialcontext-d-2006.12.14-fx.xpiも実はzipファイルであり、中にradialcontext.jarがありますので、それを編集した後再びzipで固めてradialcontext-d-2006.12.14-fx.xpiを作り、インストールします。
typodupeerror

コンピュータは旧約聖書の神に似ている、規則は多く、慈悲は無い -- Joseph Campbell

読み込み中...