385 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			385 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| General Information
 | |
| ===================
 | |
| 
 | |
| This is GTK+ version 2.13.4. GTK+ is a multi-platform toolkit for
 | |
| creating graphical user interfaces. Offering a complete set of widgets,
 | |
| GTK+ is suitable for projects ranging from small one-off projects to
 | |
| complete application suites.
 | |
| 
 | |
| GTK+ is free software and part of the GNU Project. However, the
 | |
| licensing terms for GTK+, the GNU LGPL, allow it to be used by all
 | |
| developers, including those developing proprietary software, without any
 | |
| license fees or royalties.
 | |
| 
 | |
| The official ftp site is:
 | |
|   ftp://ftp.gtk.org/pub/gtk
 | |
| 
 | |
| The official web site is:
 | |
|   http://www.gtk.org/
 | |
| 
 | |
| Information about mailing lists can be found at
 | |
|   http://www.gtk.org/mailinglists.html
 | |
| 
 | |
| 
 | |
| Installation
 | |
| ============
 | |
| 
 | |
| See the file 'INSTALL'
 | |
| 
 | |
| 
 | |
| 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.
 | |
| 
 | |
| 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
 | |
| =====================
 | |
| 
 | |
| * 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.
 | |
| 
 | |
| 
 | |
| Release notes for 2.6
 | |
| =====================
 | |
| 
 | |
| * 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.
 | |
| 
 | |
| * 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.
 | |
| 
 | |
| 
 | |
| 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.)
 | 
