Kouhei Sutou
kou****@cozmi*****
2005年 11月 23日 (水) 17:14:02 JST
須藤です. In <1132648526.16405.24.camel @ localhost> "Re: [Kazehakase-devel 2476] 長びきそうな処理では処理中に溜っているイベントを処理して欲しい" on Tue, 22 Nov 2005 17:35:25 +0900, Hiroyuki Ikezoe <poinc****@ikezo*****> wrote: > > たくさんのタブが開かれているセッションを復元する場合や,ペー > > ジ内容が大きいHTMLをレンダリングする場合など,それらの処理に > > 時間がかかっているようで風博士のウィンドウに対するイベントが > > 処理されません.例えば,描画イベント(expose_event)やマウスの > > 動き用イベント(motion_notify_event)などです. > > > > なので,src/actions/kz-actions.cのrestore_sessionの2番目の > > for文の中など,処理が長引きそうな場合は以下のような処理を加 > > えて,溜っているイベントを処理しながら本当の処理を行うように > > してもらえませんか? > > > > while (gtk_events_pending()) > > gtk_main_iteration(); > > 風博士にこの手のコードを入れてないのは、長引きそうな処理中にイベントを処 > 理されたくない、っていうのが理由です。 > > 上にあるように、restore_sessionの中でイベントを処理するようにした時に、 > 例えばタブを閉じるようなアクションを実行すると、おそらく > current_session.xmlが壊れます。壊れないかもしれません。 > > というように、gtk_main_iteration()にイベントを渡すことを考えてコードを書 > いてなかったので、じっくりコードを読んで大丈夫そうなところから入れていこ > うかと。 > > そんな感じでよいでしょうか? はい,結構です. あるいは,溜っているイベントを処理しながら頑張る箇所では, modalなプログレスバーを出しておいて,expose_event以外 KzWindowに渡らないようにしてしまうというのはどうでしょう.