Receiving a callback on GDK window destroy



Hello,

I'm a novice Gtk app developer writing a plugin for Firefox and I'm
having trouble getting the callbacks that I need from Gtk/Gdk. The way
the plugin architecture works is that Firefox creates a GtkSocket and
my plugin gets passed its XID and creates the corresponding GtkPlug
(in the same process). By and large everything works, except at
shutdown. In some cases, Firefox happens to do a gdk_window_destroy()
on one of the parent windows of the GtkSocket before unloading my
plugin (for example, when closing a tab with the 'X'). That
recursively destroys everything down to the GtkSocket and also the
GtkPlug in _gdk_window_destroy_hierarchy(
). So when I try to access the underlying X11 Window handle after this
I get an error from the X server and the program aborts. :(

What I'd like to do is receive a signal from Gtk/Gdk when the
GdkWindow inside my GtkPlug is destroyed like this so that I can
cancel any further rendering actions. But I can't figure out how to
receive a signal when this happens! AFAICT none of the GtkPlug signals
or its inherited GtkWidget signals are dispatched when this happens.

Any ideas?



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]