NOTE, this file is for changes since 0.99.5 since 0.99.6 didn't install gtk.m4 (and so 0.99.7 includes very few differences since 0.99.6). --------- We have found it necessary to make some significant changes since the 0.99.5 release. For this reason, this release is not 1.0, but instead 0.99.6. We hope to release 1.0 within the next few days. The following gives detailed instructions about a few modifications that need to be made to GTK programs and their configuration scripts. In most cases, these modifications should be quite trivial and only take a few minutes to do. (The appropriate modifications have already been made to the version of the GIMP in the CVS repository) - The way "delete_event" works has been changed (again) To briefly summarize the current state: When the user deletes an application window via the window manager, a "delete_event" event will be generated. If there is no handler for "delete_event" or the handler returns FALSE, the window will be destroyed. If the handler returns TRUE, nothing will happen. If your program was already handling delete events correctly, the only necessary change is to reverse the return values of your "delete_event" handlers. Otherwise, you must make sure that the "delete_event" leaves your application in a consistent state. There are several ways to do this: * Prevent the window from being destroyed by connecting a signal handler to "delete_event" that returns true. gtk_signal_connect (GTK_OBJECT (window), "delete_event", GTK_SIGNAL_FUNC (gtk_true), NULL); However, the user should be able to close your window through the window manager so this is a bad solution. * Connect a signal handler that simply hides the window instead of destroying it. (You need then to provide a mechanism for the user to un-hide the window) gtk_signal_connect (GTK_OBJECT (window), "delete_event", GTK_SIGNAL_FUNC (gtk_widget_hide_on_delete), NULL); * (The best option). Connect a signal handler to "destroy" that does the necessary cleanup when your window is destroyed. It is often convienient to organize things so that when the user closes the window without using the window manager, your application simply calls gtk_widget_destroy (window). That case can then be handled by the same "destroy" handler that is used when the window is deleted through the WM. - The libtool version has been upgraded to 1.1. This upgrade fixes a considerable number of bugs. However, shared library dependencies are disabled in this version, so you must make sure your programs are linked against _all_ libraries GTK uses. (This is a good thing to do in any case, because not all systems support shared library dependencies) The simplest way to do this is to use the new gtk-config script and AM_PATH_GTK automake macro included with the new release. See below. - glibconfig.h has moved from $includedir (default /usr/local/) to $libdir/glib/include (default /usr/local/lib/glib/include), to support sharing header files between architectures. Please remove the header file from the old location. The new include directory needs to be specified when compiling GTK programs. Again, the easiest way to get this right is to use AM_PATH_GTK, and/or gtk-config. - New support for configuring packages that use GTK is provided, in the form of a shell script 'gtk-config' generated by configure and an automake macro which automates the process of determining the correct libraries and include directories for GTK. See docs/gtk-config.txt for details and examples.