On 15/06/2013, at 9:11 AM, Olivier Sessink wrote:

> On 06/14/2013 10:45 PM, Richard Procter wrote:
> 
>> It seems like a lot of hoop-jumping, perhaps there's a way to avoid it?
>> Have you considered polling the event queue during startup, e.g. 
>> 
>> while gtk.events_pending():
>>        gtk.main_iteration()
>> 
>> This avoids starting the main gtk event loop while still allowing the GUI 
>> to work at (programmatically defined) intervals. 
> 
> it's not about the GUI, it is about thread synchronization. When the
> thread is finished it returns the result to the main program using
> g_idle_add() so the event loop must be running.

Right. My statement was overly strong: gtk.main_iteration() alllows you to 
single-step the gtk main loop at (programmatically defined) intervals, 
i.e. you needn't be in gtk_main() to process idle callbacks. I don't know 
enough about your program to know whether that's useful to you or not. 

> 
> [..]
>>> But
>>> I don't understand the other situation: why I cannot catch the
>>> NSApplicationOpenFile signal if I call gtkosx_application_ready() when
>>> gtk_main is already running.
>> 
>> [snip explanation of OpenFile handling] 
> 
> But why does it not work if I connect the signal and start gtk_main()
> and *after that* call gtkosx_application_ready()...?

Yes, I just noticed I was answering a slightly different question to the 
one you asked. 

The gtk-osx integration code defines a GtkApplicationDelegate, which 
processes OpenFile file events for the NSApp and emits the NSApplicationOpenFile
signal. 

So my guess is that this delegate isn't registered until 
gtkosx_application_ready() 
is called. However, checking this by the code I get muddled, as this object is 
only created 
in static void gtkosx_application_init, which is never called in the file in 
which it is defined
(gtk-mac-integration-2.0.1/src/gtkosxapplication_quartz.c), as far as I can 
tell. 

best, 
Richard. 
_______________________________________________
Gtk-osx-users-list mailing list
Gtk-osx-users-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-osx-users-list

Reply via email to