mitsugu さんが書きました:
コードで自動的にノードが挿入されるたびに window 要素のサイズが肥大化するのを防ぎたい。
アドオンを見てみましたが、「ノードが挿入されるたびに window 要素のサイズが肥大化する」は再現できませんでした。
そのアドオンで意図に反していると思われているのは、おそらく <vbox width="384"> の高さの決定がその孫要素にまで影響されているので、その孫要素がたくさんあると vbox が大きくなってしまう、ということで、window 要素の決定前に vbox が大きいと、それに合わせて window 要素も大きくなる、というところでしょうか。
(決定時に一度決まるだけであって、「たび」ではない。)
これ自体を直接回避するとすれば、挿入するのを window のサイズ決定後まで遅延させる、つまり
コード:
setTimeout(現状の init でしている処理, 0);
などで回避できると思います。
ただし、サイズを XUL でハードコードしているのがそもそも良くないです。
そうではなく、スタイルシート中に
コード:
#contentsBox {
width: 256px;
height: 256px;
}
等と書いてはどうでしょうか。
これだけで、上記の問題は回避できているように見えます。
さらに言うと、サイズの単位は px よりも em の方が良いと思います。
mitsugu さんが書きました:
現在は unneedtab.js というファイルの 46 行目で、risizeTo を使って無理矢理 window サイズを縮めています。
これは不要になるはずなのでほぼ余談ですが、window のサイズは、window 要素のサイズではなくてウィンドウのサイズなので気をつけてください。
コード:
window.resizeTo(395,320);
とするとウィンドウのサイズが 395x320 となりますが、Windows や Mac ではタイトルバー等もウィンドウの一部なので、window 要素のサイズとしてはそれらが差し引かれて少し小さいサイズになります。
同じサイズだと思っていると、中身が収まりきらなくなってしまいます。
ウィンドウの大きさではなく、ウィンドウの中身の大きさを指定したいのであれば
コード:
window.innerWidth = 395;
window.innerHeight = 320;
等とする必要があります。