On Wed, Apr 14, 2010 at 3:39 PM, Nicola Fontana <n...@entidi.it> wrote:
> Il giorno Wed, 14 Apr 2010 14:27:21 -0700
> silverburgh <silverburgh.me...@gmail.com> ha scritto:
>
>> Can you please help me what happens if I use 'gtk_set_transient_for to
>> mark it "modal to only one window"' under the hood.
>>
>> Normally (as far as what I know), there is 1 gtk main thread listen
>> for all ui events (mouse click, resize etc). And when a moral dialog
>> is poped up, that main ui tread is blocked until user clicks OK or
>> Cancel (hence the window is frozen).
>>
>> But for the case of 'gtk_set_transient_for ', how will that work? how
>> can 1 window is interactive when the Main UI thread is blocked by a
>> moral dialog in the 2nd window? (like the case in Firefox).
>
> A modal window freezes the other windows, period. This is what
> "modal" means and what gtk_dialog_run() is supposed to do. This
> has nothing to do with the stack order of the windows, although
> it is common practice to keep the modal window above the stack.
>
> gtk_window_set_transient_for() sends a hint to the window
> manager, asking to keep one window above another, and can be done
> either for modal and non-modal windows. So with gtk_widget_show()
> and gtk_window_set_transient_for() you get a *non-modal* window
> that stays on top of the parent window.
>
Nicola,

Thank you for your help and your detailed explanation.
But for FF case, when it pops up an alert dialog (done via
gtk_window_set_transient_for()), why the parent window is 'frozen' if
the alert dialog is a 'non-modal' window? (i.e. the scroll bar of the
parent window won't work, the menu bar won't work).

Thank you.



> --
> Nicola
>
_______________________________________________
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

Reply via email to