mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-12-27 06:00:22 +00:00
0f6c7682b3
Before all GtkFileChooser implementations had to be a GtkWidget, but we want to introduce one for native implementations that is not a widget. This is technically an ABI break, because some code could rely on the guarantee that GtkFileChoosers are GtkWidgets and do unchecked GtkWidget calls. However, that does seem unlikely, and this has not really been documented anywhere.
326 lines
13 KiB
Plaintext
326 lines
13 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 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/mailing-lists.php
|
|
|
|
|
|
Installation
|
|
============
|
|
|
|
See the file 'INSTALL'
|
|
|
|
|
|
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
|
|
|
|
And anything else you think is relevant.
|
|
|
|
* How to reproduce the bug.
|
|
|
|
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.
|
|
|
|
* 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.
|
|
|
|
|
|
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)
|
|
Even better are git-formatted patches. (Use git format-patch)
|
|
|
|
Release notes for 3.20
|
|
======================
|
|
|
|
* The GtkFileChooser interface pre-requisite changed from GtkWidget
|
|
to GObject, allowing non-widget implementations of this interface.
|
|
This is a minor change in ABI, as apps are no longer guaranteed
|
|
that a GtkFileChooser interface also supports all GtkWidget methods.
|
|
However, all previously existing objects still derive from GtkWidget,
|
|
so no existing code should break.
|
|
|
|
Release notes for 3.18
|
|
======================
|
|
|
|
* The GtkListBox model support that was introduced in 3.16 has been
|
|
changed to no longer call gtk_widget_show_all on rows created by
|
|
the create_widget_func. You need to manage the visibility of child
|
|
widgets yourself in your create_widget_func.
|
|
|
|
* The alpha component of foreground colors that are applied to
|
|
GtkCellRendererText is no longer ignored. If you don't want your
|
|
text to be translucent, use opaque colors.
|
|
|
|
Release notes for 3.16
|
|
======================
|
|
|
|
* GTK+ now includes an OpenGL rendering widget. To support GL on various
|
|
platforms, GTK+ uses libepoxy.
|
|
|
|
* GTK+ no longer uses gtk-update-icon-cache during its build. The
|
|
--enable-gtk2-dependency configure option has been removed.
|
|
|
|
* The introspection annotations for the x and y parameters of
|
|
GtkMenuPositionFunc have been corrected from 'out' to 'inout'.
|
|
If you are using such a function from language-bindings, this
|
|
may require adjustments.
|
|
|
|
* The lookup order for actions that are activated via keyboard
|
|
accelerators has been changed to start at the currently focused
|
|
widget. If your application is making use fo nested action groups
|
|
via gtk_widget_insert_action_group, you may want to check that
|
|
this change does not upset your accelerators.
|
|
|
|
* The GtkScrollable interface has gained a new vfunc, get_border,
|
|
that is used to position overshoot and undershoot indications that
|
|
are drawn over the content by GtkScrolledWindow. Unless your scrollable
|
|
has non-scrolling parts similar to treeview headers, there is no need
|
|
to implement this vfunc.
|
|
|
|
* The GtkSearchEntry widget has gained a number of new signals that
|
|
are emitted when certain key sequences are seen. In particular, it
|
|
now handles the Escape key and emits ::stop-search. Applications that
|
|
expect to handle Escape themselves will need to be updated.
|
|
|
|
Release notes for 3.14
|
|
======================
|
|
|
|
* A new state, GTK_STATE_FLAG_CHECKED, has been added for checked states
|
|
of radio and check buttons and menuitems. Applications that are using
|
|
GTK+ styles without widgets will need adjustments.
|
|
|
|
* Adwaita is now the default theme on all platforms.
|
|
|
|
* The icon theme code has become a little pickier about sizes and is not
|
|
automatically scaling icons beyond the limits defined in the icon theme
|
|
unless explicitly asked to do so with GTK_ICON_LOOKUP_FORCE_SIZE.
|
|
|
|
* GTK+ now includes an interactive debugger which can be activated with
|
|
the keyboard shortcuts Ctrl-Shift-d or Ctrl-Shift-i. If these shortcuts
|
|
interfere with application keybindings, they can be disabled with the
|
|
setting org.gtk.Settings.Debug.enable-inspector-keybinding.
|
|
|
|
* Most widgets have been ported to use the new gesture framework internally
|
|
for event handling. Traditional event handlers in derived widgets are still
|
|
being called.
|
|
|
|
* Using GTK+ under X11 without the X Render extension has been observed
|
|
to be problematic. This combination is using code paths in cairo and
|
|
graphics drivers which are rarely tested and likely buggy.
|
|
|
|
* GtkTextView is now using a pixel-cache internally, and is drawing
|
|
a background underneath the text. This can cause problems for applications
|
|
which assumed that they could draw things below and above the text
|
|
by chaining up in the ::draw implementation of their GtkTextView subclass.
|
|
As a short-term workaround, you can make the application apply a
|
|
custom theme to the text view with a transparent background. For
|
|
a proper fix, use the new ::draw_layer vfunc.
|
|
|
|
Release notes for 3.12
|
|
======================
|
|
|
|
* GtkWidget had a hack where if opacity is 0.999 we set up an opacity
|
|
group when rendering the widget. This is no longer needed in 3.10,
|
|
and GtkStack doesn't use it anymore. It has been removed in 3.12.
|
|
GdStack is using it, so applications should be ported from GdStack
|
|
to GtkStack in 3.12.
|
|
|
|
* GtkHeaderBar in 3.10 was not ordering its pack-end children in
|
|
the right way. This has been fixed in 3.12. Applications which
|
|
pack multiple widgets at the end of a headerbar will have to
|
|
be updated.
|
|
|
|
* gtk_text_view_add_child_in_window has changed behaviour a bit.
|
|
It now always positions the child in buffer coordinates, where
|
|
it used to inconsistently scroll with the buffer but then go
|
|
reposition to a window-relative position on redraw.
|
|
|
|
* A number of container widgets have been made more compliant with
|
|
the uniform CSS rendering model by making them render backgrounds
|
|
and borders. This may require some adjustments in applications that
|
|
were making assumptions about containers never rendering backgrounds.
|
|
|
|
Release notes for 3.10
|
|
======================
|
|
|
|
* GDK has been changed to allow only a single screen per display.
|
|
Only the X11 backend had multiple screens before, and multi-screen
|
|
setups (not multi-monitor!) are very rare nowadays. If you really
|
|
need multiple X screens, open them as separate displays.
|
|
|
|
* The behavior of GtkBox::expand has been changed to never propagate
|
|
up. Previously, this was happening inconsistently. If you want the
|
|
expand to propagate, use the GtkWidget h/v expand properties.
|
|
If you experience sizing problems with widgets in ported code,
|
|
carefully check the expand and fill flags of your boxes.
|
|
|
|
* GtkBin no longer provides default implementations for
|
|
get_height_for_width, subclasses now have to provide their own
|
|
implementation if they need height-for-width functionality.
|
|
|
|
* Widget state propagation has been changed. Historically, all of
|
|
active, prelight, selected, insensitive, inconsistent and backdrop
|
|
have been propagated to children. This has now been restricted
|
|
to just the insensitive and backdrop states. This mostly affects
|
|
theming.
|
|
|
|
* The way widget drawing happens has changed. Earlier versions handled
|
|
one expose event per GdkWindow, each with a separate cairo_t. Now we
|
|
only handle the expose event on the toplevel and reuse the same
|
|
cairo_t (with the right translation and clipping) for the entire
|
|
widget hierarchy, recursing down via the GtkWidget::draw signal.
|
|
Having all rendering in the same call tree allows effects like
|
|
opacity and offscreen rendering of entire widget sub-hierarchies.
|
|
Generally this should not require any changes in widgets, but
|
|
code looking at e.g. the current expose event may see different
|
|
behavior than before.
|
|
|
|
* The Gtk+ scrolling implementation has changed. gdk_window_scroll()
|
|
and gdk_window_move_region() no longer copy the region on the
|
|
window, but rather invalidate the entire scrolled region. This is
|
|
slightly slower, but allowed us to implement a offscreen surface
|
|
scrolling method which better fits modern hardware. Most scrolling
|
|
widgets in Gtk+ have been converted to use this model for scrolling,
|
|
but external widgets implementing scrolling using GdkWindow may see
|
|
some slowdown.
|
|
|
|
Release notes for 3.8
|
|
=====================
|
|
|
|
* GtkIconInfo has changed from being a boxed type to a GObject. This
|
|
is technically an ABI change, but basically all existing code
|
|
will keep working if its used as a boxed type, and its not
|
|
possible to instantiate GtkIconInfos outside Gtk, so this is not
|
|
expected to be a big problem.
|
|
|
|
Release notes for 3.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
|
|
=====================
|
|
|
|
* 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 <Primary> instead of <Control> in keyboard accelerators,
|
|
for improved cross-platform handling. This should not affect
|
|
applications, unless they parse or create these accelerator
|
|
manually.
|
|
|
|
* The tacit assumption that the Alt key corresponds to the MOD1
|
|
modifier under X11 is now a hard requirement.
|
|
|
|
* The beagle search backend for the file chooser has been dropped.
|
|
Tracker is the only supported search backend on Linux now.
|
|
|
|
* 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.
|
|
|
|
* GtkApplication no longer uses the gtk mainloop wrappers, so
|
|
it is no longer possible to use gtk_main_quit() to stop it.
|
|
|
|
* The -uninstalled variants of the pkg-config files have been dropped.
|
|
|
|
* 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.
|
|
|
|
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.
|
|
|
|
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
|
|
|
|
Or online at:
|
|
|
|
http://library.gnome.org/devel/gtk/3.0/migrating.html
|
|
|
|
* 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.
|