]> Pileus Git - ~andy/gtk/blobdiff - README
Update README files to refer to git
[~andy/gtk] / README
diff --git a/README b/README
index 14720bf72abc1583bfcc93afa3855fec612384cf..260361a02b8a58c6a43a207d7716398feca8fae9 100644 (file)
--- a/README
+++ b/README
@@ -1,7 +1,7 @@
 General Information
 ===================
 
-This is GTK+ version 2.9.3. GTK+ is a multi-platform toolkit for
+This is GTK+ version 2.16.0. 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.
@@ -20,11 +20,156 @@ The official web site is:
 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.
+
+* 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.
+
+* GtkAdjustment now enforces 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.
+
+* 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
 ======================
 
@@ -42,50 +187,105 @@ Release notes for 2.10
   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. 
+* 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 
+  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
 
-* Suffixes 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.
+* 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
+* 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 
+  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.
 
-Release notes
-=============
+* 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 
+  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() 
+  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 
+* 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 
+* 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
@@ -93,49 +293,49 @@ Release notes
   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 
+* 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. 
+* 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 
+  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 
+* 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. 
+  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 
+* 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 
+  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 
+  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 
+  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
@@ -146,18 +346,19 @@ Release notes
 
   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 
+  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
@@ -166,12 +367,12 @@ In the bug report please include:
 
   And anything else you think is relevant.
 
-* How to reproduce the bug. 
+* 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 
+  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
@@ -182,6 +383,7 @@ In the bug report please include:
   it will be more useful if the stacktrace is produced running the test
   program with the --sync command line option.
 
+
 Patches
 =======
 
@@ -195,5 +397,5 @@ 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.)