On Wed, 16 May 2007 20:54:34 +0200 David Nečas (Yeti) wrote:

>On Wed, May 16, 2007 at 11:28:55AM -0700, Brian J. Tarricone wrote:
>
>> This is caused by the window manager, not gtk.  It thinks the
>> application isn't responding because it takes too long to return from
>> the delete-event handler.
>
>This is interesting, do you know what exactly the window
>manager is waiting for?  Because it has of course no idea
>what your code does inside (namely whether it is in some
>handler or not) -- and you let Gtk+ main loop run, so it
>responds to events normally.  Therefore the window manager
>expects some specific reaction from the client on delete.
>
>However, it cannot be destruction of the window as that
>would break all applications that allow one to cancel the
>closing of the window.  Returning TRUE also prevents the
>default Gtk+ handler from running, so anything else Gtk+
>could do there cannot be the thing.  So what is it?

My assumption here is that the WM was sending a _NET_WM_PING to the
window after trying to close it (as suggested in the WM spec[1]), but
you're right, presumably gdk/gtk should still be responding to those
events even with a modal dialog up.  Unless the recursive mainloop
created by gtk_dialog_run() for a modal dialog *wouldn't* allow gdk/gtk
to respond to a ping on a different window.  Not sure, but that's the
only reason I can see: otherwise I don't know why this would be
happening, as I'm pretty sure that you're right that returning TRUE or
FALSE from the gtk event handler doesn't actually send any X events.

        -brian

[1]
http://standards.freedesktop.org/wm-spec/wm-spec-latest.html#id2512097
_______________________________________________
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