4 This is GTK+ version @GTK_VERSION@. GTK+ is a multi-platform toolkit for
5 creating graphical user interfaces. Offering a complete set of widgets,
6 GTK+ is suitable for projects ranging from small one-off projects to
7 complete application suites.
9 GTK+ is free software and part of the GNU Project. However, the
10 licensing terms for GTK+, the GNU LGPL, allow it to be used by all
11 developers, including those developing proprietary software, without any
12 license fees or royalties.
14 The official ftp site is:
15 ftp://ftp.gtk.org/pub/gtk
17 The official web site is:
20 Information about mailing lists can be found at
21 http://www.gtk.org/mailinglists.html
27 See the file 'INSTALL'
30 Release notes for 2.12
31 ======================
33 * Functions: gtk_about_dialog_get/set_name() were deprecated in favour of
34 gtk_about_dialog_get/set_program_name(), the GtkAboutDialog now uses the
35 "program-name" property instead of the conflicting "name" property.
37 Release notes for 2.10
38 ======================
40 * The tiff loader now requires libtiff 3.6.0 or later.
42 * The hexadecimal Unicode input feature has been reworked. It no longer
43 blocks the use of the sixteen Ctrl-Shift-<hex digit> key sequences. Now
44 it only uses Ctrl-Shift-u.
46 * A memory leak in GtkStyle handling has been fixed. This may expose bugs
47 in third-party widgets which forget to call gtk_style_attach() in their
50 * Range widgets like GtkScrollbar now render their arrows insensitive
51 when the slider is at the end. Applications which react to arrow
52 clicks even if the slider is at the end may want to use the new
53 gtk_range_set_[upper/lower]_stepper_sensitivity() functions to
54 prevent the arrows from being rendered insensitive.
56 * GtkObject now uses the "floating reference" support in GObject.
57 GTK_OBJECT_IS_FLOATING() will still work, but direct checking
58 of the GTK_FLOATING flag will no longer detect the floating
59 reference. Details about floating references can be found in the docs:
60 http://developer.gnome.org/doc/API/2.0/gobject/gobject-The-Base-Object-Type.html#floating-ref
62 * Accelerators like (_F) are now stripped from labels when they are
63 displayed in toolbars. If this is not wanted, the feature can be
64 suppressed by inserting a Unicode control character, e.g ZWNJ.
66 * The pixbuf theme engine can now customize expanders (in GtkTreeView
67 and GtkExpander) and resize grips, using the new EXPANDER and
68 RESIZE_GRIP function values.
70 * Dialogs created by gtk_about_dialog_new() no longer hide automatically
71 when the user clicks close. It is the applications responsibility to
72 hide or destroy the dialog.
74 * Several new signals have been added to GtkNotebook. Care has been taken
75 to choose signal names which do not collide with signals added by well-known
76 derived classes. The names which can no longer be used for signals in
77 objects derived from GtkNotebook are page-reordered, page-removed and
80 * Due to the interface changes in the file chooser backend interface,
81 the GTK+ ABI version has been bumped to 2.10.0. Third-party filesystem
82 backends have to be ported to the new interface, other modules, such as
83 theme engines, input method modules or pixbuf loaders have to be rebuilt
84 so that they are installed in the right place for GTK+ to find them.
90 * GTK+ 2.8 and Pango 1.10 require the cairo library.
92 * The default theme has been renamed to "Raleigh". Existing configurations
93 specifying the "Default" theme name should still work.
95 * The GtkTreeView::enable-search property has been changed to control
96 only typeahead search, not the C-f keybinding to start an interactive
97 search. To turn off interactive searching completely, you have to
98 set GtkTreeView::search-column to -1.
100 * The restriction on using the same cell renderer in multiple columns
101 of a GtkTreeView is now more strictly enforced.
103 * In GTK+ 2.8, GtkCalendar uses nl_langinfo() (if available) to determine
104 the first day of the week. Thus, it is possible to select the first day
105 of the week independently from the language, by setting LC_TIME.
107 * In GTK+ 2.8, the gtk-update-icon-cache utility includes image data
108 in the icon caches, which will make the icon cache files larger than
109 the one produced by GTK+ 2.6. This change will reduce the memory
110 overhead of icon themes at runtime, since all GTK+ applications can
111 share the image data in memory.
113 * In 2.8, GDK emits GdkEventGrabBroken events when a keyboard or pointer
114 grab is broken. On X11, this can happen if the same application grabs
115 again, or if the window used for the grab becomes unviewable. It happens
116 more often on Win32. Applications which use grabs should pay attention
117 to these events and do the necessary cleanups when the grab is lost.
118 * The GIOChannel code for sockets on win32 has been rewritten.
119 Applications who make non-trivial use of GIOChannels on win32 should
120 be watched for possible problems.
122 * GLib 2.8 uses atomic operations to implement reference counting, thus
123 g_object_ref/unref, g_closure_ref/sink/unref and g_iochannel_ref/unref
124 can be used without locking in multithreaded applications. Note that
125 other modifications, like concurrent setting of properties still require
128 * g_convert() and related character set conversion functions have been
129 fixed to emit pending shift states and to not cache iconv descriptors
130 across multiple calls, since that is problematic for some encodings.
131 Note that these functions are not suitable for streaming conversions;
132 use g_iconv() to do streaming conversion.
135 Release notes for 2.6
136 =====================
138 * GTK+ 2.6 supports clipboard persistency. To make use of this feature,
139 a clipboard manager following the specification at
140 http://www.freedesktop.org/wiki/Standards/clipboard-manager-spec
141 must be running. A sample implementation of such a clipboard manager
143 http://people.imendio.com/andersca/archives/clipboard-manager-0.3.tar.gz
144 Applications can use the function gdk_display_supports_clipboard_persistence()
145 to find out if clipboard persistence is available.
147 * Notification on clipboard ownership changes via GdkOwnerChange events
148 requires the XFIXES X extension. Applications can use the function
149 gdk_display_supports_selection_notification() to find out if ownerchip
150 change notification is available.
152 * The icon theme code in GTK+ 2.6 follows the freedesktop.org icon theme
153 specification. Setting the XDG_DATA_DIRS environtment variable may be
154 necessary if your icons aren't installed in the default location
157 * The icon theme code in GTK+ 2.6 can make use of mmap()able cache files
158 to avoid a lot of disk searching overhead. GTK+ includes a utility named
159 gtk-update-icon-cache to generate these cache files. For further details,
160 see the gtk-update-icon-cache man page or the GTK+ documentation.
162 * To reduce code size and improve efficiency, GTK+, when compiled
163 with the GNU toolchain, has separate internal and external entry
164 points for exported functions. The internal names, which begin with
165 IA__, may be seen when debugging a GTK+ program.
167 * The following functions have been deprecated in GTK+ 2.6:
168 gdk_pango_context_set_colormap
169 gtk_cell_renderer_editing_canceled
171 * The new GtkFileChooser widget emphasizes simplicity and thus does
172 not provide a navigation entry by default when opening files.
173 Experienced command line users will likely want to make heavy use of
174 the location dialog brought up by the Control-L key shortcut.
176 * The GTK+ libraries use an '_' prefix to indicate private symbols that
177 must not be used by applications. On some platforms, symbols beginning
178 with prefixes such as _gtk, _gdk, and _pango will be exported
179 from the library, on others not. In no case can applications
180 use these private symbols. In addition to that, GTK+ 2.6 makes several
181 symbols private which were not in any installed header files and
182 were never intended to be exported.
184 * The gdk_pixbuf_xlib library included in the contrib/ directory
185 and the framebuffer GDK backend included in the gdk/linux-fb directory
186 of GTK+ are provided on an as-is basis and have not been tested at all.
187 No guarantees about the degree of workingness or about future
188 compatibility are provided.
190 * On Unix, the assumption of GLib and GTK+ by default is that filenames on
191 the filesystem are encoded in UTF-8 rather than the encoding of the locale;
192 the GTK+ developers consider that having filenames whose interpretation
193 depends on the current locale is fundamentally a bad idea.
195 If you have filenames encoded in the encoding of your locale, then you
196 may want to set the G_FILENAME_ENCODING environment variable:
198 G_FILENAME_ENCODING=@locale
199 export G_FILENAME_ENCODING
201 (Earlier versions of GLib 2.x required a different environment variable
202 setting; G_BROKEN_FILENAMES=1 to achieve the same effect; this
203 is still supported, but G_FILENAME_ENCODING is preferred.)
204 Best integration of GTK+ 2.6 with the environment is achieved by
205 using a UTF-8 locale.
207 On Windows, filenames passed to GTK+ should always be in UTF-8, as
208 in GLib 2.6. This is different than in previous versions of GTK+
209 where the system codepage was used. As in GLib, for DLL ABI
210 stability, applications built against previous versions of GTK+ will
211 use entry points providing the old semantics.
213 When compiling against GTK+ 2.6, applications intended to be
214 portable to Windows must take the UTF-8 file name encoding into
215 consideration, and use the gstdio wrappers to access files whose
216 names have been constructed from strings returned from GTK+ or GLib.
222 Bugs should be reported to the GNOME bug tracking system.
223 (http://bugzilla.gnome.org, product gtk+.) You will need to create an
224 account for yourself.
226 In the bug report please include:
228 * Information about your system. For instance:
230 - What operating system and version
232 - For Linux, what version of the C library
234 And anything else you think is relevant.
236 * How to reproduce the bug.
238 If you can reproduce it with one of the tests or demos built with GTK+,
239 such as demos/gtk-demo/gtk-demo, that would be most convenient. Otherwise,
240 please include a short test program that exhibits the behavior. As a
241 last resort, you can also provide a pointer to a larger piece of software
242 that can be downloaded.
244 * If the bug was a crash, the exact text that was printed out when the
247 * Further information such as stack traces may be useful, but is not
248 necessary. If you do send a stack trace, and the error is an X error,
249 it will be more useful if the stacktrace is produced running the test
250 program with the --sync command line option.
256 Patches should also be submitted to bugzilla.gnome.org. If the patch
257 fixes an existing bug, add the patch as an attachment to that bug
260 Otherwise, enter a new bug report that describes the patch, and attach
261 the patch to that bug report.
263 Bug reports containing patches should include the PATCH keyword in their
264 keyword fields. If the patch adds to or changes the GTK+ programming
265 interface, the API keyword should also be included.
267 Patches should be in unified diff form. (The -u option to GNU diff.)