Fixed gtk-thread crash. Raised pixbuf-loader interface.
* src/.gitignore:
Added exceptions for src/gtk/Clean.sh and src/gtk/Tags.sh.
* src/gtk/gobject.scm:
Wrap <pixbuf-loader>s' GdkPixbufs with a <pixbuf>, a new type of
<gobject> that will free a GdkPixbuf when it is GCed. Provide hooks
so that users of <pixbuf-loader>s do not have to register low-level C
callbacks. Support "late" hooking by cacheing size and pixbuf and
providing them immediately to latecomers. (The update hook, on the
other hand, might never call.) The close hook is run in the loader's
thread (or the latecomer's) after gdk_pixbuf_loader_close has been
closed, and any error status collected.
* src/gtk/: gobject.scm, gtk-object.scm, scm-layout.scm:
Use "cleanup" instead of "finalize" to avoid confusion with Gtk's
notion of finalization. Assume gc-cleanups are without-interrupts.
Do NOT run gc-cleanups in a gc-daemon; run them in gtk-thread. Added
more tracing; named more lambdas.
* src/gtk/gtk.pkg:
Declare new pixbuf-loader interface. Rename (gtk object) package
"(gtk gtk-object)". Punt gobject-finalize! (same as gobject-unref).
Move (gtk main) to load after (gtk gobject), so the gc-cleanup list is
initialized before gtk-thread is launched.
* src/gtk/main.scm:
Added program "name" parameter to gtk-init, to correctly (re)construct
the command line.
* src/gtk/scm-layout.scm:
Use the new pixbuf-loader hooks instead of low-level gsignals.
"%trace" -> "trace" for consistency.
* src/gtk/thread.scm:
Disable interrupts BEFORE calling out with run-gtk as now required by
the FFI. Run gc-cleanups whenever the gc-timestamp increases. Punt
signal-thread-events, which was trouble when run WITH interrupts.
maybe-signal-io-thread-events after run-gtk should be sufficient.
* src/gtk/thread.scm, src/runtime/thread.scm:
"tracing?" -> "trace?" for consistency.