Thanks for the response.

I'd like to avoid checking with GTK_DISABLE_DEPRECATED, and would rather
implement this in a way that would be future-compatible.

I'm not against the deprecations, I can see why they are being pushed
forward. I'm just interested in how it will be possible to replicate that
behavior. Like suggested, I'm off to gtk-devel list with this inquiry.

Regards,
Zan

On Tue, Mar 6, 2012 at 8:28 PM, Chris Vine <ch...@cvine.freeserve.co.uk>wrote:

> On Tue, 6 Mar 2012 17:15:21 +0100
> Žan Doberšek <zandober...@gmail.com> wrote:
> > I'm running an effort to add support for modal dialogs in WebKitGTK+,
> > bug report is located at WebKit's bugzilla[1]. When a web page
> > requests a modal dialog, the user agent is required to create a new
> > window that will represent the modal dialog, set it transient to its
> > parent and set it as modal. The window will be shown and after that
> > the WebKit library will take over, running a loop to prevent user
> > interaction with other windows. When the modal dialog window is
> > closed, the loop is ended.
> >
> > gtk_dialog_run was a perfect example to follow, using main loops with
> > GDK_THREADS_LEAVE and GDK_THREADS_ENTER calls. These, however, seem
> > to be on their way to become deprecated.[2] WebKitGTK+ should,
> > however, still provide the modal effect when modal dialogs are to be
> > shown and run (i.e. there's no signals or similar workarounds as with
> > gtk_dialog_run), meaning a main loop should probably be established
> > and run until the dialog itself is destroyed.
> >
> > I'd like some input on what's the best and most (thread-)safe way to
> > set up the main loop or if there are any other options to avoid using
> > GDK threads calls and make the implementation future-complaint today.
>
> You could test for the symbol GTK_DISABLE_DEPRECATED and for the gtk+
> version with GTK_CHECK_VERSION, in order to conditionally compile the
> calls to GDK_THREADS_LEAVE and GDK_THREADS_ENTER, if you think you need
> to do that.  If so, you would have to make sure that all other calls to
> the GDK global lock in webkit-gtk (if any) are similarly removed.  All
> that these calls do is to unlock and lock the GDK global lock
> respectively if gdk_threads_init() has been called where the X11
> backend is in use: otherwise I think they are no-ops.
>

> If you are also concerned about the proposed deprecation of
> gtk_dialog_run() as you say I should ignore it unless you also feel
> compelled to force users to connect to a "response" signal to run their
> continuations.  It seems odd that the GTK+ developers should want to do
> this however, as a blocking 'run' call is a common GUI programming
> idiom for modal dialogs and I don't know of any proposal corresponding
> proposal to deprecate nested main loops in glib.  However, you may want
> to inquire on the gtk-devel list why this proposal has been made.
>
> Chris
>
_______________________________________________
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