1

在 Gtk 应用程序中,有 1 个主循环用于侦听事件(例如鼠标点击、键盘等)。当弹出模式对话框时,主循环被阻塞,直到用户在对话框中单击“确定”,对吗?(即当用户点击主窗口时什么都不会发生)。那是对的吗?

我的问题是 Firefox 如何执行其模态对话框以便它可以: 1. 当 1 有 2 个 Firefox 窗口时 2. 其中一个有模态对话框 3. 另一个仍然是交互式的

如果两个窗口共享相同的 gtk 主循环,这怎么可能?请帮助我理解这一点。

谢谢你。

4

2 回答 2

2

Firefox 的警报窗口是模态的。当您在 firefox 中打开一个新窗口时,它会生成另一个 firefox 进程,因此您有两个进程、两个窗口、两个独立的主循环。

于 2010-04-16T17:58:57.890 回答
1

如果两个窗口共享同一个 GTK 主循环,那么这是不可能的。所以他们没有。要么他们有两个主循环,要么他们通过每次单击一个主窗口时弹出对话框来伪造一个模态对话框。

于 2010-04-15T05:58:23.930 回答