mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-02-23 10:42:11 +01:00
GLib 2.38.0
This commit is contained in:
parent
9da87f597c
commit
c8de2b11bb
129
NEWS
129
NEWS
@ -1,3 +1,132 @@
|
|||||||
|
What's new in Glib 2.38
|
||||||
|
========================
|
||||||
|
|
||||||
|
* Application support
|
||||||
|
|
||||||
|
- GIO now provides an implementation of Desktop Actions from the
|
||||||
|
desktop entry specification
|
||||||
|
|
||||||
|
- GApplication now implements the org.freedesktop.Application
|
||||||
|
interface as per the desktop entry specification, allowing for
|
||||||
|
standards-based D-Bus launching of GLib-based applications
|
||||||
|
|
||||||
|
- GDesktopAppInfo now supports DBusActivatable as per the desktop
|
||||||
|
entry specification, allowing GLib-based applications to use D-Bus
|
||||||
|
to launch other applications
|
||||||
|
|
||||||
|
- GApplication now has a "busy" flag that can be set on an application
|
||||||
|
to allow the shell to show that it is busy
|
||||||
|
|
||||||
|
* GObject
|
||||||
|
|
||||||
|
- the private offset for a given class type is now always constant.
|
||||||
|
This was done by reorganising the memory layout of instances so that
|
||||||
|
the private data comes before the "official" pointer for the object
|
||||||
|
(ie: at a negative offset). Valgrind macros were added to mitigate
|
||||||
|
any problems that this may have caused.
|
||||||
|
|
||||||
|
- a new G_DEFINE_TYPE_WITH_PRIVATE has been added along with a
|
||||||
|
generated function *_get_instance_private() that can now serve as an
|
||||||
|
equally-performing alternative to ->priv pointers in instances
|
||||||
|
(allowing memory savings)
|
||||||
|
|
||||||
|
- new G_PRIVATE_FIELD, G_PRIVATE_FIELD_P and G_PRIVATE_OFFSET macros
|
||||||
|
provide a convenient method of converting between named variables in
|
||||||
|
private structures and their (now constant) offsets
|
||||||
|
|
||||||
|
- installing properties on a GObjectClass must now be done from
|
||||||
|
class_init. It is no longer valid to install them after class_init
|
||||||
|
has returned.
|
||||||
|
|
||||||
|
- it is now possible to manually break a GObject property binding
|
||||||
|
without destroying one of the objects involved
|
||||||
|
|
||||||
|
* Icons
|
||||||
|
|
||||||
|
- the requirements for implementing the GIcon interface have changed
|
||||||
|
in order to make it possible to consume all implementations of GIcon
|
||||||
|
with a finite number of cases
|
||||||
|
|
||||||
|
- a new GBytesIcon type was added for an icon represented by an
|
||||||
|
in-memory binary blob in a known image format (ideally png).
|
||||||
|
|
||||||
|
- new APIs g_icon_serialize() and g_icon_deserialize() replace the old
|
||||||
|
to/from_string APIs and will always work, irrespective of which
|
||||||
|
types have been initialised in the calling process, allowing for a
|
||||||
|
serialised GdkPixbuf to be deserialised in a process that doesn't
|
||||||
|
have GdkPixbuf
|
||||||
|
|
||||||
|
- support for icons has been added to GMenuModel using the new APIs
|
||||||
|
|
||||||
|
* Actions and menus
|
||||||
|
|
||||||
|
- GPropertyAction provides a convenient way of creating a stateful
|
||||||
|
property corresponding to a property on a GObject, such as the
|
||||||
|
"visible-child-name" property of a GtkStack
|
||||||
|
|
||||||
|
- new API g_menu_remove_all()
|
||||||
|
|
||||||
|
- we now have established rules about what is a "valid" action name
|
||||||
|
and an API to check them
|
||||||
|
|
||||||
|
- a new API for converting detailed action names to and from the
|
||||||
|
split-out name and parameter value (as GVariant)
|
||||||
|
|
||||||
|
- for backwards compatibility, invalid action names can still be used
|
||||||
|
with most functions, but this is not recommended
|
||||||
|
|
||||||
|
* Other GIO
|
||||||
|
|
||||||
|
- GDBus now supports services that wish to handle some of all
|
||||||
|
properties on an interface asynchronously, without requiring the
|
||||||
|
service to reimplement the entire org.freedesktop.DBus.Properties
|
||||||
|
interface
|
||||||
|
|
||||||
|
- GFile now has a new _measure_disk_usage() (and async) API for
|
||||||
|
recursively determining the amount of disk space used by a
|
||||||
|
particular directory (akin to 'du').
|
||||||
|
|
||||||
|
- asynchronous version of g_file_trash() and g_file_make_directory()
|
||||||
|
have been added
|
||||||
|
|
||||||
|
* Other new API
|
||||||
|
|
||||||
|
- GRegex has a new function to query the maximum lookbehind length to
|
||||||
|
allow for regexp matching on streams
|
||||||
|
|
||||||
|
- GVariant has two new APIs for constructing strings that allow
|
||||||
|
avoiding copies in some cases: g_variant_new_take_string() and
|
||||||
|
g_variant_new_printf()
|
||||||
|
|
||||||
|
* Testing
|
||||||
|
|
||||||
|
- we can now generate TAP output
|
||||||
|
|
||||||
|
- new support functions for simplifying the process of dealing with
|
||||||
|
data files for srcdir != builddir and installed test cases
|
||||||
|
|
||||||
|
- g_test_trap_subprocess() provides a portable alternative to
|
||||||
|
g_test_trap_fork()
|
||||||
|
|
||||||
|
* Other
|
||||||
|
|
||||||
|
- GLib now builds on Android against the bionic C library
|
||||||
|
|
||||||
|
Overview of changes from GLib 2.37.93 to 2.38.0
|
||||||
|
================================================
|
||||||
|
|
||||||
|
* fix the documentation for GSourceFuncs
|
||||||
|
|
||||||
|
* fix compilation on OS X/ppc64
|
||||||
|
|
||||||
|
Bugs fixed: 708445, 647145
|
||||||
|
|
||||||
|
Translations updated:
|
||||||
|
Danish
|
||||||
|
French
|
||||||
|
Portuguese
|
||||||
|
Punjabi
|
||||||
|
|
||||||
Overview of changes from GLib 2.37.92 to 2.37.93
|
Overview of changes from GLib 2.37.92 to 2.37.93
|
||||||
================================================
|
================================================
|
||||||
|
|
||||||
|
@ -30,8 +30,8 @@ m4_define(glib_configure_ac)
|
|||||||
# <mclasen> on the unstable (ie master), interface age = 0
|
# <mclasen> on the unstable (ie master), interface age = 0
|
||||||
|
|
||||||
m4_define([glib_major_version], [2])
|
m4_define([glib_major_version], [2])
|
||||||
m4_define([glib_minor_version], [37])
|
m4_define([glib_minor_version], [38])
|
||||||
m4_define([glib_micro_version], [93])
|
m4_define([glib_micro_version], [0])
|
||||||
m4_define([glib_interface_age], [0])
|
m4_define([glib_interface_age], [0])
|
||||||
m4_define([glib_binary_age],
|
m4_define([glib_binary_age],
|
||||||
[m4_eval(100 * glib_minor_version + glib_micro_version)])
|
[m4_eval(100 * glib_minor_version + glib_micro_version)])
|
||||||
|
Loading…
x
Reference in New Issue
Block a user