| 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.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 signal 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. |