mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-12-25 13:11:13 +00:00
461 lines
21 KiB
Plaintext
461 lines
21 KiB
Plaintext
General Information
|
|
===================
|
|
|
|
This is GTK+ version @GTK_VERSION@. 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.20
|
|
======================
|
|
|
|
* GtkStatusbar now has a message area (see gtk_status_bar_get_message_area)
|
|
which makes it easy to place additional widgets inside the statusbar
|
|
frame or to replace the label widgets. Previously, this was only possible
|
|
by accessing the innards of the statusbar widget directly. Applications
|
|
which are doing so may need some adjustments, since the addition of the
|
|
message area changed the internal widget hierarchy.
|
|
|
|
* GtkBuilder no longer sets the "name" property of widgets to the ID
|
|
attribute of the <object>. Use gtk_buildable_get_name() instead of
|
|
gtk_widget_get_name() to obtain the ID.
|
|
|
|
* GTK+ now includes introspection data, as a consequence, it gained a
|
|
dependency on gobject-introspection. It is possible to build without
|
|
introspection by passing --disable-introspection to configure.
|
|
|
|
|
|
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.
|
|
|
|
* JPEG2000 support is no longer enabled by default. It must be
|
|
explicitly turned on, by passing --with-libjasper to configure.
|
|
|
|
* GDK has been reworked to implement 'client-side windows'. This offers
|
|
exciting new possibilities, such as transformed, offscreen rendering,
|
|
but it breaks some long-standing assumptions that applications may
|
|
have about GDK windows. Setting the environment variable
|
|
GDK_NATIVE_WINDOWS makes GDK create a native X11 window for each
|
|
GDK window, which might make problematic applications work better.
|
|
|
|
* GTK+ calls signal (SIGPIPE, SIG_IGN) during initialization, to ignore
|
|
SIGPIPE signals, since these are almost never wanted in graphical
|
|
applications. If you do need to handle SIGPIPE for some reason, reset
|
|
the handler after gtk_init(), but notice that other libraries (e.g.
|
|
libdbus or gvfs) might do similar things.
|
|
|
|
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.
|
|
|
|
* 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
|
|
======================
|
|
|
|
* 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://library.gnome.org/devel/gobject/unstable/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.
|
|
|
|
Patches should be in unified diff form. (The -up option to GNU diff.)
|