最新 RSS Twilog 掲示板

くでんな日々や公開どう?

2009/04/02

[Firefox] 最後のタブを閉じた場合にそのタブを空にする方法

// 最後のタブを閉じた場合にそのタブを空にする
user_pref("browser.tabs.closeWindowWithLastTab", false);

trunkに「最後のタブを閉じたときにそのタブを空にする設定にしていると、最後のタブを閉じたときに一瞬タブが2枚表示される」という、なにか昔に聞いたことがあるようなないようなバグへのDaoさんのパッチが入って修正されました。

ただ、実際の処理がどうなってるかは分からないんですけど、新しい挙動を見てると最後のタブを閉じたときに一瞬タブバーにタブが一つもなくなってから空のタブが追加されてる?ような感じです。

これだと、タブの高さが「すべてのタブのリストを表示」ボタンより高い場合[註]に、最後のタブを閉じると一瞬タブバーの高さが変わってコンテンツエリアがびくっとするので困っています。

対策は、OSのデスクトップのデザインを変えた場合にタブのテキストの大きさが大きくなってもタブの高さが変わらないように、テーマのタブの高さを高めにするくらいしか思いつきません。ただ、これだとテーマのタブのデザインや高さがとても制限されてしまいます。あと、Daoさんのパッチが入った後でも、最後のタブを閉じたてそのタブを空になるときに一瞬タブごとのタブを閉じるボタンが表示されるのが気になりますね。

というわけで、それを何とか伝えようと頑張っているのですが、説明が難しい……Firefox 3だと再現しないから、Firefox 3と同じような処理にしてくれればいいのに。

あと、「(初期設定で)ブラウザウィンドウにタブが一枚しかない場合にそのタブを中クリックしてもタブが閉じないように(無視するように)する」という微妙な挙動にする修正も入っています。

註:ただ、.tabs-alltabs-button {display: none !important;}と指定しても再現するのでよく分かりません。

コメント

Piro 『チェックインされたパッチでは、実際の処理としては、新しい空のタブを追加した直後にcollapsed=trueで折り畳まれた状態(レイアウトに影響を及ぼさない)にして、「最後のタブを閉じる処理」の最後で改めてcollapsed=falseにしています。一瞬クローズボックスが見えてしまう、という問題も含めてきちんと解決しようと思うと、導入されたパッチの何倍かはコードを書かないといけない気がします。』 (04/02 10:35)

くでん 『ありがとうございます。イメージとしてはこんな感じでしょうか? http://maguroban.s41.xrea.com/image/09040401.png CSSのvisibility: visible/hiddenみたいなのを使うとか、何かいい方法がないんでしょうか……』 (04/04 06:43)

お名前 コメント