1

Gtk アプリケーションには、イベント (マウス クリック、キーボードなど) をリッスンするメイン ループが 1 つあります。また、モーダル ダイアログがポップアップすると、ユーザーがダイアログで [OK] をクリックするまでメイン ループがブロックされますよね? (つまり、ユーザーがメイン ウィンドウをクリックしても何も起こりません)。あれは正しいですか?

私の質問は、Firefox がどのようにしてモーダル ダイアログを実行できるかということです。

両方のウィンドウが同じ gtk メイン ループを共有している場合、それはどのように可能ですか? これを理解するのを手伝ってください。

ありがとうございました。

4

2 に答える 2

2

firefox のアラートウィンドウはモーダルです。Firefox で新しいウィンドウを開くと、別の Firefox プロセスが生成されるため、2 つのプロセス、2 つのウィンドウ、2 つの独立したメイン ループができます。

于 2010-04-16T17:58:57.890 に答える
1

両方のウィンドウが同じGTKメインループを共有している場合、それは不可能です。だから彼らはしません。2つのメインループがあるか、1つのメインウィンドウをクリックするたびにダイアログを上げることでモーダルダイアログを偽造します。

于 2010-04-15T05:58:23.930 に答える