X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=README.in;h=b5d9f30fe448b3ae2c58354859efba1f06b5bc48;hb=e3cd958e369395c45d18ba1a3673dfb2d5247d95;hp=71b653820658d7a308d679c261be6790b39a1ff5;hpb=7d85757776f42ce6214b617d4cc42eb9fcbd3e4a;p=~andy%2Fgtk diff --git a/README.in b/README.in index 71b653820..b5d9f30fe 100644 --- a/README.in +++ b/README.in @@ -11,14 +11,15 @@ 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: +The official download locations are: ftp://ftp.gtk.org/pub/gtk + http://download.gnome.org/sources/gtk+ The official web site is: http://www.gtk.org/ Information about mailing lists can be found at - http://www.gtk.org/mailinglists.html + http://www.gtk.org/mailing-lists.php Installation @@ -27,364 +28,135 @@ 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. - -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- 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 -===================== +How to report bugs +================== + +Bugs should be reported to the GNOME bug tracking system. +(http://bugzilla.gnome.org, product glib.) 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 + - For Linux, what version of the C library -* GTK+ 2.8 and Pango 1.10 require the cairo library. + And anything else you think is relevant. + +* How to reproduce the bug. -* The default theme has been renamed to "Raleigh". Existing configurations - specifying the "Default" theme name should still work. + If you can reproduce it with one of the test programs that are built + in the tests/ 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. -* 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. +* If the bug was a crash, the exact text that was printed out + when the crash occured. -* The restriction on using the same cell renderer in multiple columns - of a GtkTreeView is now more strictly enforced. +* Further information such as stack traces may be useful, but + is not necessary. -* 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. +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. -* 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. +Otherwise, enter a new bug report that describes the patch, +and attach the patch to that bug report. -* 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. +Patches should be in unified diff form. (The -up option to GNU diff.) -* 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 3.6 +===================== -Release notes for 2.6 +* The accessibility bridge code that exports accessible objects + on the bus is now used by default; atk-bridge has been converted + into a library that GTK+ links against. To void the linking, + pass --without-atk-bridge when configuring GTK+. + +* GDK threading support has been deprecated. It is recommended to + use g_idle_add(), g_main_context_invoke() and similar funtions + to make all GTK+ calls from the main thread. + +* GTK+ now follows the XDG Base Directory specification for + user configuration and data files. In detail, + * $XDG_CONFIG_HOME/gtk-3.0/custom-papers is the new location + for $HOME/.gtk-custom-papers + * $XDG_CONFIG_HOME/gtk-3.0/bookmarks is the new location + for $HOME/.gtk-bookmarks + * $XDG_DATA_HOME/themes is preferred over $HOME/.themes + * $XDG_DATA_HOME/icons is preferred over $HOME/.icons. + Existing files from the old location will still be read + if the new location does not exist. + +* $HOME/.gtk-3.0 is no longer in the default module load path. + If you want to load modules from there, add it to the GTK_PATH + environment variable. + +Release notes for 3.4 ===================== -* 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. +* Scroll events have been separated from button events, and smooth + scrolling has been added with a separate event mask. Widgets now + need to have either GDK_SCROLL_MASK or GDK_SMOOTH_SCROLL_MASK in + their event mask to receive scroll events. In addition, the + GdkScrollDirection enumeration has gained a new member, + GDK_SCROLL_SMOOTH, so switch statements will have to be amended + to cover this case. +* GTK+ now uses instead of in keyboard accelerators, + for improved cross-platform handling. This should not affect + applications, unless they parse or create these accelerator + manually. -How to report bugs -================== +* The tacit assumption that the Alt key corresponds to the MOD1 + modifier under X11 is now a hard requirement. -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: +* The beagle search backend for the file chooser has been dropped. + Tracker is the only supported search backend on Linux now. - - What operating system and version - - What version of X - - For Linux, what version of the C library +* GtkNotebook has been changed to destroy its action widgets when + it gets destroyed itself. If your application is using action + widgets in notebooks, you may have to adjust your code to take + this into account. - And anything else you think is relevant. +* GtkApplication no longer uses the gtk mainloop wrappers, so + it is no longer possible to use gtk_main_quit() to stop it. -* How to reproduce the bug. +* The -uninstalled variants of the pkg-config files have been dropped. - 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. +* Excessive dependencies have been culled from Requires: lines + in .pc files. Dependent modules may have to declare dependencies + that there were getting 'for free' in the past. -* 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.2 +===================== +* 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. -Patches -======= +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: + + 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.