GTK+ 2.8 Specific Notes ======================= * GTK+ 2.8 and Pango 1.10 require the cairo library. * The default theme has been renamed to "Raleigh". Existing configurations specifying the "Default" theme name should still work. * The GtkTreeView::enable-search property has been changed to control only typeahead search, not the C-f keybinding to start an interactive search. To turn off interactive searching completely, you have to set GtkTreeView::search-column to -1. * The restriction on using the same cell renderer in multiple columns of a GtkTreeView is now more strictly enforced. * In GTK+ 2.8, GtkCalendar uses nl_langinfo() (if available) to determine the first day of the week. Thus, it is possible to select the first day of the week independently from the language, by setting LC_TIME. * In GTK+ 2.8, the gtk-update-icon-cache utility includes image data in the icon caches, which will make the icon cache files larger than the one produced by GTK+ 2.6. This change will reduce the memory overhead of icon themes at runtime, since all GTK+ applications can share the image data in memory. * In 2.8, GDK emits GdkEventGrabBroken events when a keyboard or pointer grab is broken. On X11, this can happen if the same application grabs again, or if the window used for the grab becomes unviewable. It happens more often on Win32. Applications which use grabs should pay attention to these events and do the necessary cleanups when the grab is lost. * The GIOChannel code for sockets on win32 has been rewritten. Applications who make non-trivial use of GIOChannels on win32 should be watched for possible problems. * GLib 2.8 uses atomic operations to implement reference counting, thus g_object_ref/unref, g_closure_ref/sink/unref and g_iochannel_ref/unref can be used without locking in multithreaded applications. Note that other modifications, like concurrent setting of properties still require locking. * g_convert() and related character set conversion functions have been fixed to emit pending shift states and to not cache iconv descriptors across multiple calls, since that is problematic for some encodings. Note that these functions are not suitable for streaming conversions; use g_iconv() to do streaming conversion. How to report bugs ================== Bugs should be reported to the GNOME bug tracking system. (http://bugzilla.gnome.org, product gtk+.) You will need to create an account for yourself. In the bug report please include: * Information about your system. For instance: - What operating system and version - What version of X - For Linux, what version of the C library And anything else you think is relevant. * How to reproduce the bug. If you can reproduce it with the testgtk program that is built in the gtk/ subdirectory, that will be most convenient. Otherwise, please include a short test program that exhibits the behavior. As a last resort, you can also provide a pointer to a larger piece of software that can be downloaded. * If the bug was a crash, the exact text that was printed out when the crash occured. * Further information such as stack traces may be useful, but is not necessary. If you do send a stack trace, and the error is an X error, it will be more useful if the stacktrace is produced running the test program with the --sync command line option. Patches ======= Patches should also be submitted to bugzilla.gnome.org. If the patch fixes an existing bug, add the patch as an attachment to that bug report. Otherwise, enter a new bug report that describes the patch, and attach the patch to that bug report. Bug reports containing patches should include the PATCH keyword in their keyword fields. If the patch adds to or changes the GTK programming interface, the API keyword should also be included. Patches should be in unified diff form. (The -u option to GNU diff.)