http://www.gtk.org/
Information about mailing lists can be found at
- http://www.gtk.org/mailinglists.html
+ http://www.gtk.org/mailing-lists.html
Installation
See the file 'INSTALL'
-Release notes for 2.18
-======================
-
-* gtk_tooltip_set_custom now accept a NULL custom_widget to unset the
- old custom_widget. Custom_widget does not get destroyed when the
- tooltip goes away.
-
-
-Release notes for 2.16
-======================
-
-* Password entries now display a caps-lock warning. This can be turned off
- with the caps-lock-warning property.
-
-* Various orientation-related functions have been deprecated in favour
- of the new GtkOrientable interface: gtk_scale_button_get_orientation,
- gtk_scale_button_set_orientation, gtk_toolbar_set_orientation.
-
-* The action-proxy interaction has been changed. Widgets that operate as
- proxies have to implement the GtkActivatable interface now. GtkActivatable
- implementation are responsible for syncing their appearance with the
- action and for activating the action. All GTK+ widgets that are commonly
- used as proxies implement the GtkActivatable interface.
-
-* The handling of keyboard shortcuts has been changed, to help with a
- longstanding complaint about the way GTK+ handles multiple layouts. GTK+
- now only uses keys from groups other than the current group if they are
- not present in the current group.
-
-Release notes for 2.14
-======================
-
-* gtkitemfactory.h is now completely deprecated.
- As gtkactiongroup.h and gtkstock.h no longer include the gtkitemfactory.h
- header, this might break application using gtk_item_factory_* symbols
- without including gtkitemfactory.h - even though this behaviour has never
- been supported in the first place.
-
-* The GtkFileSystem semi-private interface has been removed.
- The GTK+ filechooser implementation now uses GIO directly, which has
- rendered external filesystem implementations unnecessary. Consequently,
- the GtkFileSystem interface is no longer available, nor the filechooser
- will load any GtkFileSystem implementation.
-
-* GtkComboBox now renders the popdown button insensitive when
- the model is empty. Applications which want to populate the list
- only before displaying it can set gtk_combo_box_set_button_sensitivity
- to GTK_SENSITIVITY_ON, so that the button is always sensitive or
- GTK_SENSITIVITY_OFF to make it insensitive respectively.
-
-* In the early 2.14.x releases, GtkAdjustment was changed to enforce
- that values are restricted to the range [lower, upper - page_size].
- This has always been the documented behaviour, and the recommended
- practice is to set page_size to 0 when using adjustments for simple
- scalar values, like in a slider or spin button.
- Due to the large number of applications that are affected by this
- change, the behaviour has been reverted to the old behaviour in
- 2.14.3, with an explicit warning that this change will be
- reintroduced in 2.90.
-
-* gdk-pixbuf will use GIO for mime type detection if possible. For
- this to work, shared-mime-info needs to be installed and XDG_DATA_DIRS
- set accordingly at configure time. Otherwise, gdk-pixbuf falls
- back to its built-in sniffing implementation.
-
-Release notes for 2.12
-======================
-
-* gtk_about_dialog_get/set_name() were deprecated in favour of
- gtk_about_dialog_get/set_program_name(), the GtkAboutDialog now uses the
- "program-name" property instead of the conflicting "name" property.
-
-* The gdk-pixbuf tiff loader now requires libtiff 3.6.0 or later.
-
-* Support for Windows 9x/ME has officially been removed. It hasn't worked
- since 2.6 anyway.
-
-* The GtkTextBufferTargetInfo enumeration values have been changed from
- G_MAXUINT-0, G_MAXUINT-1, G_MAXUINT-2, etc, to -1, -2, -3 to stay within
- ANSI C limits.
-
-* A change in the handling of _NET_WM_USER_TIME properties on toplevel
- windows can cause deadlock problems with window managers that are using
- GDK for drawing decorations. In particular, metacity <= 2.18.0 is affected
- by this. The problem has been fixed in metacity 2.18.1.
-
-* Semi-private GtkTextLayout api has changed: new GtkTextLayout method
- invalidate_cursors(), and new functions gtk_text_layout_invalidate_cursors()
- and gtk_text_layout_cursors_changed(), which should be used in place of
- gtk_text_layout_invalidate() and gtk_text_layout_changed() if invalidation
- is due to marks moved or changed selection; new GtkTextLineDisplay structure
- member. Source compatibility is preserved; binary compatibility may break
- only if GtkTextLineDisplay structure was created on stack or as a part
- of another structure (in particular GnomeCanvas and its clones do not need
- recompiling).
-
-* Another new signal has been added to GtkNotebook. The new signal
- is called create-window, so this name can no longer be used for signals
- in objects derived from GtkNotebook.
-
-* The gtk_notebook_set/get_group_id() functions were found to be insufficient
- and have been deprecated in favour of gtk_notebook_set/get_group().
-
-* The move-focus signal has been moved to GtkWidget, to unify the
- various implementations of this signal in specific widgets. Great care
- has been taken to make sure that all code using this signal continues
- to work.
-
-* An unused and hardly visible GtkFrame has been removed from the menu
- widget hierarchy when GtkComboBox::appears-as-list style property is
- set. Any RC file applying a different style to any widget below the
- widget path "gtk-combobox-popup-window.GtkFrame" should take into
- account that the frame no longer exists.
-
-* The external print preview application used by GtkPrintOperationPreview
- is now passed the print settings on the command line with the
- --print-settings parameter pointing to a temp file containing the
- settings. The preview application assumes ownership of the file and
- should delete it once it does not need it anymore. The --print-settings
- commandline option is understood by Evince 0.9.0 and newer. To use a
- different print preview application, change the gtk-print-preview-command
- setting in your gtkrc file, e.g. gtk-print-preview-command = "ggv %f"
-
-* GtkMenuShell is now defined as an abstract type. It was already
- documented as an abstract class, and there is little reason to
- instantiate it.
-
-* The GtkTooltips struct (this is the old tooltips API) is now considered
- private. Code that used to access this struct, in particular the
- tips_data_list field, will need to change. All of the old tooltips
- API has been deprecated in favour of a new implementation and
- API. This affects all of the gtk_tooltips_ functions, and functions
- which take a GtkTooltips argument, such as gtk_tool_item_set_tooltip()
- and gtk_menu_tool_button_set_arrow_tooltip().
-
-* The memory management of the GtkRecentManager object has been changed,
- as using the screen didn't guarantee that the singleton instance was
- correctly destroyed. The screen-related functions have been deprecated,
- and should not be used anymore; the GtkRecentManager instance returned by
- the gtk_recent_manager_get_default() function is guaranteed to be valid
- for the entire lifetime of an application.
-
-* A number of interfaces that have been superseded by newer interfaces for
- a long time have finally been deprecated. This includes
- gtk_widget_ref/unref(), gtk_rc_style_ref/unref() and the old file selector.
-
-* The various coordinate systems in use in GtkTreeView widgets have
- been clarified in the documentation, and in the cause of doing so,
- the functions gtk_tree_view_widget_to_tree_coords() and
- gtk_tree_view_tree_to_widget_coords() have been deprecated in
- favour of a new family of gtk_tree_view_convert_ functions.
-
-* gtk_menu_item_remove_submenu() has been deprecated in favour of
- gtk_menu_item_set_submenu (..., NULL).
-
-* gtk_default_draw_check() has been fixed to really decrease the
- indicator size by one pixel to ensure an odd size instead of
- accidentially increasing it.
- Consequently, gtk_cell_renderer_toggle_render() could be fixed to
- not subtract 1 from the size passed to gtk_paint_option(), which
- was just a workaround for above off-by-two for even sizes (theme
- engines now get the real indicator size passed).
- The default toggle size of GtkCheckMenuItem and GtkCellRendererToggle
- has been changed to 13 to be consistent with GtkCheckButton.
- The only visible change with default settings is that the indicator in
- GtkCellRendererToggle has changed its size from 11 to 13 and is now
- consistent with menus and toggle buttons.
-
-* GTK+ has always required that gtk_init() (or a variant thereof) is
- called before any other GTK+ function. Some applications call functions
- like gtk_clipboard_get() to check if they need to call gtk_init(),
- anyway. A change in GLib 2.14 has recently broken this unsupported
- practise. It is worth pointing out that calling gtk_init() twice
- does no harm.
-
-
-Release notes for 2.10
-======================
-
-* The hexadecimal Unicode input feature has been reworked. It no longer
- blocks the use of the sixteen Ctrl-Shift-<hex digit> key sequences. Now
- it only uses Ctrl-Shift-u.
-
-* A memory leak in GtkStyle handling has been fixed. This may expose bugs
- in third-party widgets which forget to call gtk_style_attach() in their
- realize functions.
-
-* Range widgets like GtkScrollbar now render their arrows insensitive
- when the slider is at the end. Applications which react to arrow
- clicks even if the slider is at the end may want to use the new
- gtk_range_set_[upper/lower]_stepper_sensitivity() functions to
- prevent the arrows from being rendered insensitive.
-
-* GtkObject now uses the "floating reference" support in GObject.
- GTK_OBJECT_IS_FLOATING() will still work, but direct checking
- of the GTK_FLOATING flag will no longer detect the floating
- reference. Details about floating references can be found in the docs:
- http://developer.gnome.org/doc/API/2.0/gobject/gobject-The-Base-Object-Type.html#floating-ref
-
-* Accelerators like (_F) are now stripped from labels when they are
- displayed in toolbars. If this is not wanted, the feature can be
- suppressed by inserting a Unicode control character, e.g ZWNJ.
-
-* The pixbuf theme engine can now customize expanders (in GtkTreeView
- and GtkExpander) and resize grips, using the new EXPANDER and
- RESIZE_GRIP function values.
-
-* Dialogs created by gtk_about_dialog_new() no longer hide automatically
- when the user clicks close. It is the applications responsibility to
- hide or destroy the dialog.
-
-* Several new signals have been added to GtkNotebook. Care has been taken
- to choose signal names which do not collide with signals added by well-known
- derived classes. The names which can no longer be used for signals in
- objects derived from GtkNotebook are page-reordered, page-removed and
- page-added.
-
-* Due to the interface changes in the file chooser backend interface,
- the GTK+ ABI version has been bumped to 2.10.0. Third-party filesystem
- backends have to be ported to the new interface, other modules, such as
- theme engines, input method modules or pixbuf loaders have to be rebuilt
- so that they are installed in the right place for GTK+ to find them.
-
-
-Release notes for 2.8
+Release notes for 3.4
=====================
-* 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.
+* The -uninstalled variants of the pkg-config files have been dropped.
-* 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.
-
-
-Release notes for 2.6
+Release notes for 3.2
=====================
-* GTK+ 2.6 supports clipboard persistency. To make use of this feature,
- a clipboard manager following the specification at
- http://www.freedesktop.org/wiki/Standards/clipboard-manager-spec
- must be running. A sample implementation of such a clipboard manager
- is available at
- http://people.imendio.com/andersca/archives/clipboard-manager-0.3.tar.gz
- Applications can use the function gdk_display_supports_clipboard_persistence()
- to find out if clipboard persistence is available.
-
-* Notification on clipboard ownership changes via GdkOwnerChange events
- requires the XFIXES X extension. Applications can use the function
- gdk_display_supports_selection_notification() to find out if ownerchip
- change notification is available.
-
-* The icon theme code in GTK+ 2.6 follows the freedesktop.org icon theme
- specification. Setting the XDG_DATA_DIRS environtment variable may be
- necessary if your icons aren't installed in the default location
- /usr/share/icons.
-
-* The icon theme code in GTK+ 2.6 can make use of mmap()able cache files
- to avoid a lot of disk searching overhead. GTK+ includes a utility named
- gtk-update-icon-cache to generate these cache files. For further details,
- see the gtk-update-icon-cache man page or the GTK+ documentation.
+* The accessible implementations for GTK+ widgets have been integrated
+ into libgtk itself, and the gail module does not exist anymore. This
+ change should not affect applications very much.
-* To reduce code size and improve efficiency, GTK+, when compiled
- with the GNU toolchain, has separate internal and external entry
- points for exported functions. The internal names, which begin with
- IA__, may be seen when debugging a GTK+ program.
-
-* The following functions have been deprecated in GTK+ 2.6:
- gdk_pango_context_set_colormap
- gtk_cell_renderer_editing_canceled
-
-* The new GtkFileChooser widget emphasizes simplicity and thus does
- not provide a navigation entry by default when opening files.
- Experienced command line users will likely want to make heavy use of
- the location dialog brought up by the Control-L key shortcut.
-
-* The GTK+ libraries use an '_' prefix to indicate private symbols that
- must not be used by applications. On some platforms, symbols beginning
- with prefixes such as _gtk, _gdk, and _pango will be exported
- from the library, on others not. In no case can applications
- use these private symbols. In addition to that, GTK+ 2.6 makes several
- symbols private which were not in any installed header files and
- were never intended to be exported.
-
-* The gdk_pixbuf_xlib library included in the contrib/ directory
- and the framebuffer GDK backend included in the gdk/linux-fb directory
- of GTK+ are provided on an as-is basis and have not been tested at all.
- No guarantees about the degree of workingness or about future
- compatibility are provided.
-
-* On Unix, the assumption of GLib and GTK+ by default is that filenames on
- the filesystem are encoded in UTF-8 rather than the encoding of the locale;
- the GTK+ developers consider that having filenames whose interpretation
- depends on the current locale is fundamentally a bad idea.
-
- If you have filenames encoded in the encoding of your locale, then you
- may want to set the G_FILENAME_ENCODING environment variable:
-
- G_FILENAME_ENCODING=@locale
- export G_FILENAME_ENCODING
-
- (Earlier versions of GLib 2.x required a different environment variable
- setting; G_BROKEN_FILENAMES=1 to achieve the same effect; this
- is still supported, but G_FILENAME_ENCODING is preferred.)
- Best integration of GTK+ 2.6 with the environment is achieved by
- using a UTF-8 locale.
-
- On Windows, filenames passed to GTK+ should always be in UTF-8, as
- in GLib 2.6. This is different than in previous versions of GTK+
- where the system codepage was used. As in GLib, for DLL ABI
- stability, applications built against previous versions of GTK+ will
- use entry points providing the old semantics.
-
- When compiling against GTK+ 2.6, applications intended to be
- portable to Windows must take the UTF-8 file name encoding into
- consideration, and use the gstdio wrappers to access files whose
- names have been constructed from strings returned from GTK+ or GLib.
-
-
-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 one of the tests or demos built with GTK+,
- such as demos/gtk-demo/gtk-demo, that would 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.
+Release notes for 3.0
+=====================
+* GTK+ 3 is a major new version of GTK+, which is parallel installable
+ with GTK+ 2.x. For information about porting applications from GTK+ 2.x
+ to GTK+ 3, see the file:
-Patches
-=======
+ docs/reference/gtk/html/migrating.html
-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.
+ Or online at:
-Otherwise, enter a new bug report that describes the patch, and attach
-the patch to that bug report.
+ http://library.gnome.org/devel/gtk/3.0/migrating.html
-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.)
+* Note that the library sonames in this release have been changed from
+ libgtk-3.0 and libgdk-3.0 to libgtk-3 and libgdk-3, to prevent the
+ library versions from going backwards, compared to the 2.90/91/99
+ releases. Applications will have to be recompiled.