Вопрос о Modal Dialog в приложении Gtk - PullRequest
1 голос
/ 15 апреля 2010

В приложении Gtk есть 1 основной цикл, который прослушивает события (например, щелчок мышью, клавиатура и т. Д.). И когда появляется модальное диалоговое окно, основной цикл блокируется, пока пользователь не нажмет «ОК» в диалоговом окне, верно? (то есть ничего не произойдет, когда пользователь нажмет на главное окно). Это правильно?

Мой вопрос заключается в том, как Firefox может сделать модальный диалог, чтобы он мог: 1. когда у меня есть 2 окна Firefox 2. один из них имеет модальный диалог 3. другой все еще интерактивен

Если оба окна используют один и тот же основной цикл gtk, как это возможно? Пожалуйста, помогите мне понять это.

Спасибо.

Ответы [ 2 ]

2 голосов
/ 16 апреля 2010

Окно оповещения Firefox является модальным.Когда вы открываете новое окно в Firefox, оно порождает другой процесс Firefox, поэтому у вас есть два процесса, два окна, два независимых основных цикла.

1 голос
/ 15 апреля 2010

Если оба окна используют один и тот же основной цикл GTK, это невозможно. Так они и не делают. Либо у них есть два основных цикла, либо они симулируют модальное диалоговое окно, вызывая диалоговое окно каждый раз, когда вы нажимаете на одно главное окно.

...