[Kazehakase-devel 2482] Re: セッションを何度も保存すると復元したときに複数のウィンドウが開く

Zurück zum Archiv-Index

Hiroyuki Ikezoe poinc****@ikezo*****
2005年 11月 24日 (木) 15:44:57 JST


zoeです。

2005-11-23 (水) の 17:07 +0900 に Kouhei Sutou さんは書きました:

> もともと,「起動時に最後に保存したセッションを復元」にチェッ
> クを入れている場合は以下のような問題は起こらなかったんです.
> 
>   * セッションを保存すると,復元したときに保存した回数と同じ
>     数だけ(タブではなく)ウィンドウが開く
> 
> これは,以下のためです.
> 
>   (1) 起動時にkz_bookmarks->current_sessionを
>       current_session.xmlから読み込んだセッションで初期化.
> 
>       問題1: 起動時はひとつもタブが開かれていないから,
>       kz_bookmarks->current_sessionは空でなければいけないのに
>       空になっていない場合がある.
> 
>   (2) 起動時,「起動時に最後に保存したセッションを復元」に
>       チェックを入れて *いる* 場合はmain.cにある
>       restore_session()を使って,セッションを復元する.
>       
>       罠1: main.cのrestore_session()はセッションを復元する前
>       にkz_bookmarks->current_sessionをクリアしているので,
>       問題1を解決している.
> 
>   (3) セッションの復元はkz-actions.cにある
>       act_restore_session()を使って行われる.
>       
>       問題2: 「起動時に最後に保存したセッションを復元」にチェッ
>       クを入れて *いない* 場合,
>       kz_bookmarks->current_sessionには(1)で初期化されたセッ
>       ション中に実際には開かれていないタブの情報が入っている
>       可能性ある.
> 
> 
> 問題は以下で再現できると思います.
> 
>   (1) 風博士を起動
>   (2) 「セッションを自動的に保存」にチェックを入れる
>   (3) 「起動時に最後に保存したセッションを復元」のチェックを外す
>   (4) 適当にタブを開く
>   (5) 風博士を再起動
>   (6) セッションを「復元」
>   (7) (6)に戻る

ありがとうございます。状況が理解できました。

そもそも、起動時にcurrent_session.xml自体を読み込む必要がないですね。
act_restore_session()内でcurrent_session.xmlから読み込み直してるので。

今度こそちゃんと直ったと思うんですが、どうでしょうか?







Kazehakase-devel メーリングリストの案内
Zurück zum Archiv-Index