2.31.1 87/198387/2 upstream/2.31.1
authorRadoslaw Cybulski <r.cybulski@partner.samsung.com>
Wed, 23 Jan 2019 14:38:41 +0000 (15:38 +0100)
committerRadoslaw Cybulski <r.cybulski@partner.samsung.com>
Fri, 1 Feb 2019 11:44:33 +0000 (12:44 +0100)
Change-Id: I5608051794e244fbcec00fbfafb9a6d71f485254

44 files changed:
Makefile.am [deleted file]
NEWS
atspi-2.pc.in [deleted file]
atspi/Makefile.am [deleted file]
atspi/atspi-collection.c
atspi/atspi-component.c
atspi/atspi-component.h
atspi/atspi-constants.h
atspi/atspi-device-listener.c
atspi/atspi-enum-types.c.template
atspi/atspi-enum-types.h.template
atspi/atspi-event-listener.c
atspi/atspi-gmain.c
atspi/atspi-matchrule.c
atspi/atspi-misc-private.h
atspi/atspi-misc.c
atspi/atspi-registry.c
atspi/meson.build
autogen.sh [deleted file]
bus/Makefile.am [deleted file]
bus/at-spi-bus-launcher.c
bus/meson.build
configure.ac [deleted file]
dbind/Makefile.am [deleted file]
dbind/dbtest.c
dbind/meson.build
doc/Makefile.am [deleted file]
doc/libatspi/libatspi-docs.sgml
doc/libatspi/libatspi-sections.txt
doc/libatspi/tmpl/atspi-constants.sgml
idl/component.didl
idl/controller.didl
meson.build
meson_options.txt
po/Makevars [deleted file]
po/fr.po
registryd/Makefile.am [deleted file]
registryd/de-types.h
registryd/deviceeventcontroller-x11.c
registryd/deviceeventcontroller.c
registryd/reentrant-list.c
test/Makefile.am [deleted file]
xml/Component.xml
xml/Makefile.am [deleted file]

diff --git a/Makefile.am b/Makefile.am
deleted file mode 100644 (file)
index dff484a..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-DISTCHECK_CONFIGURE_FLAGS = --enable-introspection --enable-gtk-doc
-
--include $(INTROSPECTION_MAKEFILE)
-INTROSPECTION_GIRS =
-INTROSPECTION_SCANNER_ARGS = --add-include-path=$(srcdir)
-INTROSPECTION_COMPILER_ARGS = --includedir=$(srcdir)
-
-SUBDIRS = po dbind xml atspi bus registryd doc test
-
-ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
-
-EXTRA_DIST = \
-       atspi-2.pc.in \
-       meson.build \
-       meson_options.txt
-
-pkgconfigdir = $(libdir)/pkgconfig
-pkgconfig_DATA = atspi-2.pc
-
-DISTCLEANFILES = \
-       atspi-2.pc
-
-MAINTAINERCLEANFILES = \
-       $(GITIGNORE_MAINTAINERCLEANFILES_TOPLEVEL) \
-       $(GITIGNORE_MAINTAINERCLEANFILES_MAKEFILE_IN) \
-       $(GITIGNORE_MAINTAINERCLEANFILES_M4_LIBTOOL) \
-       gtk-doc.make \
-       m4/gtk-doc.m4 \
-       m4/intltool.m4
-
--include $(top_srcdir)/git.mk
diff --git a/NEWS b/NEWS
index 0abf5f2..0dd86dc 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,40 @@
+What's new in at-spi2-core 2.31.1:
+
+* Bus launcher: fix an issue where the error wasn't cleared on failure.
+
+* Add support for locking/unlocking modifiers.
+
+* Update error log text for consistency.
+
+* Documentation clean-ups.
+
+What's new in at-spi2-core 2.29.1:
+
+* Add dbus-broker support to bus launcher.
+
+* Add ScrollTo and ScrollToPoint component interfaces.
+
+* Do not use deprecated GSettings API
+
+* Fix various compiler warnings and documentation annotations.
+
+What's new in at-spi2-core 2.27.92:
+
+* Support building a static library (bgo#793652).
+\
+* Fix build on FreeBSD (bgo#791608).
+
+What's new in at-spi2-core 2.27.1:
+
+* Dropped autotools support.
+
+* documentation: Remove list association from
+  ATSPI_ROLE_DESCRIPTION_{TERM,VALUE} (bgo#791021).
+
+* Fix a potential buffer overflow in at-spi-bus-launcher (bgo#791124).
+
+* Make the build reproducible (bgo#791167).
+
 What's new in at-spi2-core 2.26.1:
 
 * Remove unused dependency on libxkbcommon.
diff --git a/atspi-2.pc.in b/atspi-2.pc.in
deleted file mode 100644 (file)
index 71d028a..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-
-Name: atspi
-Description: Accessibility Technology software library
-Requires: dbus-1 glib-2.0
-Version: @VERSION@
-Libs: -L${libdir} -latspi
-Cflags: -I${includedir}/at-spi-2.0
diff --git a/atspi/Makefile.am b/atspi/Makefile.am
deleted file mode 100644 (file)
index 636cc76..0000000
+++ /dev/null
@@ -1,160 +0,0 @@
-lib_LTLIBRARIES =
-
-BUILT_SOURCES =
-
-CLEANFILES =
-DISTCLEANFILES =
-EXTRA_DIST = \
-       meson.build
-
-lib_LTLIBRARIES += libatspi.la
-
-libatspi_la_LDFLAGS = \
-       @LDFLAGS@ @LT_VERSION_INFO@ @LIBTOOL_EXPORT_OPTIONS@ \
-       -no-undefined
-
-libatspi_la_CFLAGS = \
-       $(DBUS_CFLAGS) \
-       $(DBIND_CFLAGS) \
-       $(GLIB_CFLAGS) \
-       -I$(top_srcdir)/registryd \
-       -I$(top_builddir)/registryd \
-       -I$(top_builddir) \
-       -I$(top_srcdir)
-
-libatspi_la_LIBADD = \
-       $(DBUS_LIBS) \
-       $(GOBJ_LIBS) \
-       $(X11_LIBS) \
-       $(top_builddir)/dbind/libdbind.la
-
-libatspi_la_DEPENDENCIES = $(top_builddir)/dbind/libdbind.la
-
-atspi_headers = \
-       atspi.h \
-       atspi-accessible.h \
-       atspi-action.h \
-       atspi-application.h \
-       atspi-collection.h \
-       atspi-component.h \
-       atspi-constants.h \
-       atspi-device-listener.h \
-       atspi-device-listener-private.h \
-       atspi-document.h \
-       atspi-editabletext.h \
-       atspi-event-listener.h \
-       atspi-event-listener-private.h \
-       atspi-gmain.h \
-       atspi-hyperlink.h \
-       atspi-hypertext.h \
-       atspi-image.h \
-       atspi-matchrule.h \
-       atspi-misc.h \
-       atspi-object.h \
-       atspi-private.h \
-       atspi-registry.h \
-       atspi-relation.h \
-       atspi-selection.h \
-       atspi-stateset.h \
-       atspi-table.h \
-       atspi-table-cell.h \
-       atspi-text.h \
-       atspi-types.h \
-       atspi-value.h
-
-libatspi_la_SOURCES = \
-       $(BUILT_SOURCES) \
-       atspi-accessible.c \
-       atspi-accessible-private.h \
-       atspi-action.c \
-       atspi-application.c \
-       atspi-collection.c \
-       atspi-component.c \
-       atspi-device-listener.c \
-       atspi-device-listener-private.h \
-       atspi-document.c \
-       atspi-editabletext.c \
-       atspi-event-listener.c \
-       atspi-event-listener-private.h \
-       atspi-gmain.c \
-       atspi-hyperlink.c \
-       atspi-hypertext.c \
-       atspi-image.c \
-       atspi-matchrule.c \
-       atspi-matchrule-private.h \
-       atspi-misc.c \
-       atspi-misc-private.h \
-       atspi-object.c \
-       atspi-private.h \
-       atspi-registry.c \
-       atspi-relation.c \
-       atspi-selection.c \
-       atspi-stateset.c \
-       atspi-table.c \
-       atspi-table-cell.c \
-       atspi-text.c \
-       atspi-value.c \
-       $()
-
-BUILT_SOURCES += \
-       atspi-enum-types.c \
-       atspi-enum-types.h
-
-libatspiincludedir = $(includedir)/at-spi-2.0/atspi
-libatspiinclude_HEADERS = $(atspi_headers) atspi-enum-types.h
-
-#CLEANFILES = atspi-constants.h
-
-#atspi-constants.h: $(top_srcdir)/xml/spec.xml $(top_srcdir)/tools/c-constants-gen.py
-#      python $(top_srcdir)/tools/c-constants-gen.py Atspi $(top_srcdir)/xml/spec.xml atspi-constants
-
-ENUM_TYPES = \
-       atspi-constants.h \
-       atspi-types.h
-
-atspi-enum-types.h: atspi-enum-types.h.template $(ENUM_TYPES)
-       $(AM_V_GEN) $(GLIB_MKENUMS) --template $(srcdir)/atspi-enum-types.h.template $(addprefix $(srcdir)/, $(ENUM_TYPES)) > $@.tmp \
-       && (cmp -s $@.tmp $@ || cp -f $@.tmp $@) \
-       && rm -f $@.tmp
-
-atspi-enum-types.c: atspi-enum-types.c.template $(ENUM_TYPES)
-       $(AM_V_GEN) $(GLIB_MKENUMS) --template $(srcdir)/atspi-enum-types.c.template $(addprefix $(srcdir)/, $(ENUM_TYPES)) > $@.tmp \
-       && (cmp -s $@.tmp $@ || cp -f $@.tmp $@) \
-       && rm -f $@.tmp
-
-CLEANFILES += \
-       atspi-enum-types.c \
-       atspi-enum-types.h
-
-EXTRA_DIST += \
-       atspi-enum-types.c.template \
-       atspi-enum-types.h.template
-
--include $(INTROSPECTION_MAKEFILE)
-INTROSPECTION_GIRS =
-INTROSPECTION_SCANNER_ARGS = --add-include-path=$(srcdir) --warn-all
-INTROSPECTION_COMPILER_ARGS = --includedir=$(srcdir)
-
-if HAVE_INTROSPECTION
-Atspi-2.0.gir: libatspi.la
-Atspi_2_0_gir_INCLUDES = DBus-1.0 GLib-2.0 GObject-2.0
-Atspi_2_0_gir_EXPORT_PACKAGES = atspi-2
-Atspi_2_0_gir_CFLAGS = -I$(top_builddir) -I$(top_srcdir)
-Atspi_2_0_gir_LIBS = libatspi.la $(top_builddir)/dbind/libdbind.la
-Atspi_2_0_gir_FILES = $(libatspi_la_SOURCES) $(atspi_headers) atspi-enum-types.c atspi-enum-types.h
-Atspi_2_0_gir_SCANNERFLAGS = --namespace Atspi --nsversion=2.0
-INTROSPECTION_SCANNER_ARGS += --c-include='atspi/atspi.h'
-INTROSPECTION_GIRS += Atspi-2.0.gir
-
-girdir = $(datadir)/gir-1.0
-gir_DATA = $(INTROSPECTION_GIRS)
-
-typelibdir = $(libdir)/girepository-1.0
-typelib_DATA = $(INTROSPECTION_GIRS:.gir=.typelib)
-
-CLEANFILES += \
-    $(gir_DATA) \
-    $(typelib_DATA)
-endif
-
--include $(top_srcdir)/git.mk
index f4e33ef..d3f27da 100644 (file)
@@ -36,7 +36,7 @@ atspi_collection_is_ancestor_of (AtspiCollection *collection,
                                  AtspiAccessible *test,
                                  GError **error)
 {
-  g_warning ("Atspi: TODO: Implement is_ancestor_of");
+  g_warning ("AT-SPI: TODO: Implement is_ancestor_of");
   return FALSE;
 }
 
@@ -267,7 +267,7 @@ atspi_collection_get_matches_from (AtspiCollection *collection,
 AtspiAccessible *
 atspi_collection_get_active_descendant (AtspiCollection *collection, GError **error)
 {
-  g_warning ("atspi: TODO: Implement get_active_descendants");
+  g_warning ("AT-SPI: TODO: Implement get_active_descendants");
   return NULL;
 }
 
index 0ab552b..ed22582 100644 (file)
@@ -412,6 +412,63 @@ atspi_component_set_size (AtspiComponent *obj,
   return ret;
 }
 
+/**
+ * atspi_component_scroll_to:
+ * @obj: a pointer to the #AtspiComponent object on which to operate.
+ * @type: a #AtspiScrollType indicating where the object should be placed on the
+ *        screen.
+ *
+ * Scrolls whatever container of the #AtspiComponent object so it becomes
+ * visible on the screen.
+ *
+ * Returns: #TRUE if successful, #FALSE otherwise.
+ **/
+gboolean
+atspi_component_scroll_to (AtspiComponent *obj,
+                           AtspiScrollType type,
+                           GError **error)
+{
+  dbus_bool_t retval = FALSE;
+
+  g_return_val_if_fail (obj != NULL, FALSE);
+
+  _atspi_dbus_call (obj, atspi_interface_component,
+                    "ScrollTo", error, "u=>b", type, &retval);
+
+  return retval;
+}
+
+/**
+ * atspi_component_scroll_to_point:
+ * @obj: a pointer to the #AtspiComponent object on which to operate.
+ * @coords: a #AtspiCoordType indicating whether the coordinates are relative to
+ *          the screen, to the window, or to the parent object.
+ * @x: the x coordinate of the point to reach
+ * @y: the y coordinate of the point to reach
+ * @error: return location for a #GError
+ *
+ * Scrolls whatever container of the #AtspiComponent object so it becomes
+ * visible on the screen at a given position.
+ *
+ * Returns: #TRUE if successful, #FALSE otherwise.
+ **/
+gboolean
+atspi_component_scroll_to_point (AtspiComponent *obj,
+                                 AtspiCoordType coords,
+                                 gint x,
+                                 gint y,
+                                 GError **error)
+{
+  dbus_bool_t retval = FALSE;
+
+  g_return_val_if_fail (obj != NULL, FALSE);
+
+  _atspi_dbus_call (obj, atspi_interface_component,
+                    "ScrollToPoint", error, "uii=>b", coords, x, y, &retval);
+
+  return retval;
+}
+
 static void
 atspi_component_base_init (AtspiComponent *klass)
 {
index dd3455a..c84232d 100644 (file)
@@ -107,6 +107,10 @@ gboolean atspi_component_set_position (AtspiComponent *obj, gint x, gint y, Atsp
 
 gboolean atspi_component_set_size (AtspiComponent *obj, gint width, gint height, GError **error);
 
+gboolean atspi_component_scroll_to (AtspiComponent *obj, AtspiScrollType type, GError **error);
+
+gboolean atspi_component_scroll_to_point (AtspiComponent *obj, AtspiCoordType coords, gint x, gint y, GError **error);
+
 G_END_DECLS
 
 #endif /* _ATSPI_COMPONENT_H_ */
index 1af391d..b9f41ef 100644 (file)
@@ -53,6 +53,8 @@
   Accessibility::StateType\n
   Accessibility::Event\n
   Accessibility::EventDetails \n
+  Accessibility::ScrollType \n
+  Accessibility::CoordType \n
 
   \section Registry
   Accessibility also includes Accessibility::Registry,
@@ -124,8 +126,10 @@ typedef enum {
 /**
  * AtspiCoordType:
  * @ATSPI_COORD_TYPE_SCREEN: Specifies xy coordinates relative to the screen.
- * @ATSPI_COORD_TYPE_WINDOW: Specifies xy coordinates relative to the widget's 
+ * @ATSPI_COORD_TYPE_WINDOW: Specifies xy coordinates relative to the widget's
  * top-level window.
+ * @ATSPI_COORD_TYPE_PARENT: Specifies xy coordinates relative to the widget's
+ * immediate parent.
  *
  * Enumeration used by #AtspiComponent, #AtspiImage, and #AtspiText interfaces
  * to specify whether coordinates are relative to the window or the screen.
@@ -134,6 +138,7 @@ typedef enum {
 typedef enum {
     ATSPI_COORD_TYPE_SCREEN,
     ATSPI_COORD_TYPE_WINDOW,
+    ATSPI_COORD_TYPE_PARENT,
 } AtspiCoordType;
 
 /**
@@ -141,18 +146,20 @@ typedef enum {
  *
  * One higher than the highest valid value of #AtspiCoordType.
  **/
-#define ATSPI_COORD_TYPE_COUNT (1+1)
+#define ATSPI_COORD_TYPE_COUNT (2+1)
 
 /**
  * AtspiCollectionSortOrder:
- * @ATSPI_Collection_SORT_ORDER_INVALID:
- * @ATSPI_Collection_SORT_ORDER_CANONICAL:
- * @ATSPI_Collection_SORT_ORDER_FLOW:
- * @ATSPI_Collection_SORT_ORDER_TAB:
- * @ATSPI_Collection_SORT_ORDER_REVERSE_CANONICAL:
- * @ATSPI_Collection_SORT_ORDER_REVERSE_FLOW:
- * @ATSPI_Collection_SORT_ORDER_REVERSE_TAB:
- * @ATSPI_Collection_SORT_ORDER_LAST_DEFINED:
+ * @ATSPI_Collection_SORT_ORDER_INVALID: Invalid sort order
+ * @ATSPI_Collection_SORT_ORDER_CANONICAL: Canonical sort order
+ * @ATSPI_Collection_SORT_ORDER_FLOW: Flow sort order
+ * @ATSPI_Collection_SORT_ORDER_TAB: Tab sort order
+ * @ATSPI_Collection_SORT_ORDER_REVERSE_CANONICAL: Reverse canonical sort order
+ * @ATSPI_Collection_SORT_ORDER_REVERSE_FLOW: Reverse flow sort order
+ * @ATSPI_Collection_SORT_ORDER_REVERSE_TAB: Reverse tab sort order
+ * @ATSPI_Collection_SORT_ORDER_LAST_DEFINED: Used only to determine the end of the
+ * enumeration.
+
  *
  * Enumeration used by interface #AtspiCollection to specify
  * the way #AtspiAccesible objects should be sorted.
@@ -178,14 +185,14 @@ typedef enum {
 
 /**
  * AtspiCollectionMatchType:
- * @ATSPI_Collection_MATCH_INVALID: Indicates an error condition or 
+ * @ATSPI_Collection_MATCH_INVALID: Indicates an error condition or
  * uninitialized value.
  * @ATSPI_Collection_MATCH_ALL: #TRUE if all of the criteria are met.
  * @ATSPI_Collection_MATCH_ANY: #TRUE if any of the criteria are met.
  * @ATSPI_Collection_MATCH_NONE: #TRUE if none of the criteria are met.
  * @ATSPI_Collection_MATCH_EMPTY: Same as @ATSPI_Collection_MATCH_ALL if
- * the criteria is non-empty; for empty criteria this rule requires returned 
- * value to also have empty set. 
+ * the criteria is non-empty; for empty criteria this rule requires returned
+ * value to also have empty set.
  * @ATSPI_Collection_MATCH_LAST_DEFINED: Used only to determine the end of the
  * enumeration.
  *
@@ -211,10 +218,11 @@ typedef enum {
 
 /**
  * AtspiCollectionTreeTraversalType:
- * @ATSPI_Collection_TREE_RESTRICT_CHILDREN:
- * @ATSPI_Collection_TREE_RESTRICT_SIBLING:
- * @ATSPI_Collection_TREE_INORDER:
- * @ATSPI_Collection_TREE_LAST_DEFINED:
+ * @ATSPI_Collection_TREE_RESTRICT_CHILDREN: Restrict children tree traveral
+ * @ATSPI_Collection_TREE_RESTRICT_SIBLING: Restrict sibling tree traversal
+ * @ATSPI_Collection_TREE_INORDER: In-order tree traversal.
+ * @ATSPI_Collection_TREE_LAST_DEFINED: Used only to determine the end of the
+ * enumeration.
  *
  * Enumeration used by interface #AtspiCollection to specify
  * restrictions on #AtspiAccesible objects to be traversed.
@@ -414,7 +422,7 @@ typedef enum {
  * @ATSPI_STATE_ACTIVE: Indicates a window is currently the active window, or
  * an object is the active subelement within a container or table.
  * @ATSPI_STATE_ACTIVE should not be used for objects which have
- * @ATSPI_STATE_FOCUSABLE or @ATSPI_STATE_SELECTABLE: Those objects should use
+ * #ATSPI_STATE_FOCUSABLE or #ATSPI_STATE_SELECTABLE: Those objects should use
  * @ATSPI_STATE_FOCUSED and @ATSPI_STATE_SELECTED respectively.
  * @ATSPI_STATE_ACTIVE is a means to indicate that an object which is not
  * focusable and not selectable is the currently-active item within its
@@ -438,8 +446,8 @@ typedef enum {
  * disclosure of its children.
  * @ATSPI_STATE_EXPANDED: Indicates this object is expanded.
  * @ATSPI_STATE_FOCUSABLE: Indicates this object can accept keyboard focus,
- * which means all       events resulting from typing on the keyboard will
- * normally be passed       to it when it has focus.
+ * which means all events resulting from typing on the keyboard will
+ * normally be passed to it when it has focus.
  * @ATSPI_STATE_FOCUSED: Indicates this object currently has the keyboard
  * focus.
  * @ATSPI_STATE_HAS_TOOLTIP: Indicates that the object has an associated
@@ -636,8 +644,8 @@ typedef enum {
 
 /**
  * AtspiKeyEventType:
- * @ATSPI_KEY_PRESSED:
- * @ATSPI_KEY_RELEASED:
+ * @ATSPI_KEY_PRESSED: Key press event
+ * @ATSPI_KEY_RELEASED: Key release event
  *
  * Deprecated. Should not be used.
  *
@@ -707,6 +715,8 @@ typedef enum {
  * subject to the out-of-keymap limitations described for
  * @ATSPI_KEY_SYM. In practice this limitation primarily effects
  * Chinese and Japanese locales.
+ * @ATSPI_KEY_LOCKMODIFIERS: Emulates locking a set of modifiers.
+ * @ATSPI_KEY_UNLOCKMODIFIERS: Emulates unlocking a set of modifiers.
  *
  * Enumeration used when synthesizing keyboard input via
  * #atspi_generate_keyboard_event.
@@ -718,6 +728,8 @@ typedef enum {
     ATSPI_KEY_PRESSRELEASE,
     ATSPI_KEY_SYM,
     ATSPI_KEY_STRING,
+    ATSPI_KEY_LOCKMODIFIERS,
+    ATSPI_KEY_UNLOCKMODIFIERS,
 } AtspiKeySynthType;
 
 /**
@@ -864,7 +876,7 @@ typedef enum {
  * the valuator. Common examples include association of scrollbars with the
  * viewport or panel which they control.
  *
- * 
+ *
  * Enumeration used to specify
  * the type of relation encapsulated in an #AtspiRelation object.
  *
@@ -1154,81 +1166,76 @@ typedef enum {
  * @ATSPI_ROLE_INFO_BAR: An object designed to present a message to the user
  * within an existing window.
  * @ATSPI_ROLE_LEVEL_BAR: A bar that serves as a level indicator to, for
- * instance, show the strength of a password or the state of a battery. 
- *   Since: 2.8
- *@ATSPI_ROLE_TITLE_BAR: A bar that serves as the title of a window or a
- * dialog. @Since: 2.12
- *@ATSPI_ROLE_BLOCK_QUOTE: An object which contains a text section
- * that is quoted from another source.  @Since: 2.12
- *@ATSPI_ROLE_AUDIO: An object which represents an audio
- * element. @Since: 2.12
- *@ATSPI_ROLE_VIDEO: An object which represents a video
- * element. @Since: 2.12
- *@ATSPI_ROLE_DEFINITION: A definition of a term or concept. @Since: 2.12
- *@ATSPI_ROLE_ARTICLE: A section of a page that consists of a
- * composition that forms an independent part of a document, page, or
- * site. Examples: A blog entry, a news story, a forum post. @Since:
- * 2.12
- *@ATSPI_ROLE_LANDMARK: A region of a web page intended as a
- * navigational landmark. This is designed to allow Assistive
- * Technologies to provide quick navigation among key regions within a
- * document. @Since: 2.12
- *@ATSPI_ROLE_LOG: A text widget or container holding log content, such
- * as chat history and error logs. In this role there is a
- * relationship between the arrival of new items in the log and the
- * reading order. The log contains a meaningful sequence and new
- * information is added only to the end of the log, not at arbitrary
- * points. @Since: 2.12
- *@ATSPI_ROLE_MARQUEE: A container where non-essential information
- * changes frequently. Common usages of marquee include stock tickers
- * and ad banners. The primary difference between a marquee and a log
- * is that logs usually have a meaningful order or sequence of
- * important content changes. @Since: 2.12
- *@ATSPI_ROLE_MATH: A text widget or container that holds a mathematical
- * expression. @Since: 2.12
- *@ATSPI_ROLE_RATING: A widget whose purpose is to display a rating,
- * such as the number of stars associated with a song in a media
- * player. Objects of this role should also implement
- * AtspiValue. @Since: 2.12
- *@ATSPI_ROLE_TIMER: An object containing a numerical counter which
- * indicates an amount of elapsed time from a start point, or the time
- * remaining until an end point. @Since: 2.12
- *@ATSPI_ROLE_STATIC: A generic non-container object whose purpose is to display
- * a brief amount of information to the user and whose role is known by the
- * implementor but lacks semantic value for the user. Examples in which
- * @ATSPI_ROLE_STATIC is appropriate include the message displayed in a message
- * box and an image used as an alternative means to display text.
- * @ATSPI_ROLE_STATIC should not be applied to widgets which are traditionally
- * interactive, objects which display a significant amount of content, or any
- * object which has an accessible relation pointing to another object. The
- * displayed information, as a general rule, should be exposed through the
- * accessible name of the object. For labels which describe another widget, see
- * @ATSPI_ROLE_LABEL. For text views, see @ATSPI_ROLE_TEXT. For generic
- * containers, see @ATSPI_ROLE_PANEL. For objects whose role is not known by the
- * implementor, see @ATSPI_ROLE_UNKNOWN. @Since: 2.16.
- *@ATSPI_ROLE_MATH_FRACTION: An object that represents a mathematical fraction.
- * @Since: 2.16.
- *@ATSPI_ROLE_MATH_ROOT: An object that represents a mathematical expression
- * displayed with a radical. @Since: 2.16.
- *@ATSPI_ROLE_SUBSCRIPT: An object that contains text that is displayed as a
- * subscript. @Since: 2.16.
- *@ATSPI_ROLE_SUPERSCRIPT: An object that contains text that is displayed as a
- * superscript. @Since: 2.16.
- *@ATSPI_ROLE_DESCRIPTION_LIST: An object that represents a list of term-value
- * groups. A term-value group represents an individual description and consist
- * of one or more names (@ATSPI_ROLE_DESCRIPTION_TERM) followed by one or more
- * values (@ATSPI_ROLE_DESCRIPTION_VALUE). For each list, there should not be
- * more than one group with the same term name. @Since: 2.26.
- *@ATSPI_ROLE_DESCRIPTION_TERM: An object that represents the term, or name,
- * part of a term-description group in a description list. @Since: 2.26.
- *@ATSPI_ROLE_DESCRIPTION_VALUE: An object that represents the description,
- * definition, or value of a term-description group in a description list.
- * The values within a group are alternatives, meaning that you can have
- * several @ATSPI_ROLE_DESCRIPTION_VALUE objects for a given
- * @ATSPI_ROLE_DESCRIPTION_TERM. @Since: 2.26.
- *@ATSPI_ROLE_FOOTNOTE: An object that contains the text of a footnote. @Since: 2.26.
- * @ATSPI_ROLE_LAST_DEFINED: Not a valid role, used for finding end of
- * enumeration.
+ * instance, show the strength of a password or the state of a battery. @Since: 2.8
+ * @ATSPI_ROLE_TITLE_BAR: A bar that serves as the title of a window or a
+ *  dialog. @Since: 2.12
+ * @ATSPI_ROLE_BLOCK_QUOTE: An object which contains a text section
+ *  that is quoted from another source.  @Since: 2.12
+ * @ATSPI_ROLE_AUDIO: An object which represents an audio
+ *  element. @Since: 2.12
+ * @ATSPI_ROLE_VIDEO: An object which represents a video
+ *  element. @Since: 2.12
+ * @ATSPI_ROLE_DEFINITION: A definition of a term or concept. @Since: 2.12
+ * @ATSPI_ROLE_ARTICLE: A section of a page that consists of a
+ *  composition that forms an independent part of a document, page, or
+ *  site. Examples: A blog entry, a news story, a forum post. @Since:
+ *  2.12
+ * @ATSPI_ROLE_LANDMARK: A region of a web page intended as a
+ *  navigational landmark. This is designed to allow Assistive
+ *  Technologies to provide quick navigation among key regions within a
+ *  document. @Since: 2.12
+ * @ATSPI_ROLE_LOG: A text widget or container holding log content, such
+ *  as chat history and error logs. In this role there is a
+ *  relationship between the arrival of new items in the log and the
+ *  reading order. The log contains a meaningful sequence and new
+ *  information is added only to the end of the log, not at arbitrary
+ *  points. @Since: 2.12
+ * @ATSPI_ROLE_MARQUEE: A container where non-essential information
+ *  changes frequently. Common usages of marquee include stock tickers
+ *  and ad banners. The primary difference between a marquee and a log
+ *  is that logs usually have a meaningful order or sequence of
+ *  important content changes. @Since: 2.12
+ * @ATSPI_ROLE_MATH: A text widget or container that holds a mathematical
+ *  expression. @Since: 2.12
+ * @ATSPI_ROLE_RATING: A widget whose purpose is to display a rating,
+ *  such as the number of stars associated with a song in a media
+ *  player. Objects of this role should also implement
+ *  AtspiValue. @Since: 2.12
+ * @ATSPI_ROLE_TIMER: An object containing a numerical counter which
+ *  indicates an amount of elapsed time from a start point, or the time
+ *  remaining until an end point. @Since: 2.12
+ * @ATSPI_ROLE_STATIC: A generic non-container object whose purpose is to display
+ *  a brief amount of information to the user and whose role is known by the
+ *  implementor but lacks semantic value for the user. Examples in which
+ *  @ATSPI_ROLE_STATIC is appropriate include the message displayed in a message
+ *  box and an image used as an alternative means to display text.
+ *  @ATSPI_ROLE_STATIC should not be applied to widgets which are traditionally
+ *  interactive, objects which display a significant amount of content, or any
+ *  object which has an accessible relation pointing to another object. The
+ *  displayed information, as a general rule, should be exposed through the
+ *  accessible name of the object. For labels which describe another widget, see
+ *  @ATSPI_ROLE_LABEL. For text views, see @ATSPI_ROLE_TEXT. For generic
+ *  containers, see @ATSPI_ROLE_PANEL. For objects whose role is not known by the
+ *  implementor, see @ATSPI_ROLE_UNKNOWN. @Since: 2.16.
+ * @ATSPI_ROLE_MATH_FRACTION: An object that represents a mathematical fraction. @Since: 2.16.
+ * @ATSPI_ROLE_MATH_ROOT: An object that represents a mathematical expression
+ *  displayed with a radical. @Since: 2.16.
+ * @ATSPI_ROLE_SUBSCRIPT: An object that contains text that is displayed as a
+ *  subscript. @Since: 2.16.
+ * @ATSPI_ROLE_SUPERSCRIPT: An object that contains text that is displayed as a
+ *  superscript. @Since: 2.16.
+ * @ATSPI_ROLE_DESCRIPTION_LIST: An object that represents a list of term-value
+ *  groups. A term-value group represents an individual description and consist
+ *  of one or more names (@ATSPI_ROLE_DESCRIPTION_TERM) followed by one or more
+ *  values (@ATSPI_ROLE_DESCRIPTION_VALUE). For each list, there should not be
+ *  more than one group with the same term name. @Since: 2.26.
+ * @ATSPI_ROLE_DESCRIPTION_TERM: An object that represents a term or phrase
+ *  with a corresponding definition. @Since: 2.26.
+ * @ATSPI_ROLE_DESCRIPTION_VALUE: An object that represents the description,
+ *  definition, or value of a term. @Since: 2.26.
+ * @ATSPI_ROLE_FOOTNOTE: An object that contains the text of a footnote. @Since: 2.26.
+ *  @ATSPI_ROLE_LAST_DEFINED: Not a valid role, used for finding end of
+ *  enumeration.
  *
  * Enumeration used by interface #AtspiAccessible to specify the role
  * of an #AtspiAccessible object.
@@ -1386,6 +1393,43 @@ typedef enum
   ATSPI_CACHE_UNDEFINED   = 0x40000000,
 } AtspiCache;
 
+/**
+ * AtspiScrollType:
+ * @ATSPI_SCROLL_TOP_LEFT: Scroll the object to the top left corner of the
+ * window.
+ * @ATSPI_SCROLL_BOTTOM_RIGHT: Scroll the object to the bottom right corner of
+ * the window.
+ * @ATSPI_SCROLL_TOP_EDGE: Scroll the object to the top edge of the window.
+ * @ATSPI_SCROLL_BOTTOM_EDGE: Scroll the object to the bottom edge of the
+ * window.
+ * @ATSPI_SCROLL_LEFT_EDGE: Scroll the object to the left edge of the
+ * window.
+ * @ATSPI_SCROLL_RIGHT_EDGE: Scroll the object to the right edge of the
+ * window.
+ * @ATSPI_SCROLL_ANYWHERE: Scroll the object to application-dependent position
+ * on the window.
+ *
+ * Enumeration used by interface #AtspiAccessible to specify where an
+ * #AtspiAccessible object should be placed on the screen when using scroll_to.
+ *
+ */
+typedef enum {
+  ATSPI_SCROLL_TOP_LEFT,
+  ATSPI_SCROLL_BOTTOM_RIGHT,
+  ATSPI_SCROLL_TOP_EDGE,
+  ATSPI_SCROLL_BOTTOM_EDGE,
+  ATSPI_SCROLL_LEFT_EDGE,
+  ATSPI_SCROLL_RIGHT_EDGE,
+  ATSPI_SCROLL_ANYWHERE
+} AtspiScrollType;
+
+/**
+ * ATSPI_SCROLLTYPE_COUNT:
+ *
+ * One higher than the highest valid value of #AtspiScrollType.
+ */
+#define ATSPI_SCROLLTYPE_COUNT (6+1)
+
 #define ATSPI_DBUS_NAME_REGISTRY "org.a11y.atspi.Registry"
 #define ATSPI_DBUS_PATH_REGISTRY "/org/a11y/atspi/registry"
 #define ATSPI_DBUS_INTERFACE_REGISTRY "org.a11y.atspi.Registry"
index 5aac60a..56597f7 100644 (file)
@@ -351,13 +351,13 @@ _atspi_dbus_handle_DeviceEvent (DBusConnection *bus, DBusMessage *message, void
 
   if (strcmp (dbus_message_get_signature (message), "(uiuuisb)") != 0)
   {
-    g_warning ("Atspi: Unknown signature for an event");
+    g_warning ("AT-SPI: Unknown signature for an event");
     goto done;
   }
 
   if (sscanf (path, "/org/a11y/atspi/listeners/%d", &id) != 1)
   {
-    g_warning ("Atspi: Bad listener path: %s\n", path);
+    g_warning ("AT-SPI: Bad listener path: %s\n", path);
     goto done;
   }
 
@@ -379,7 +379,7 @@ _atspi_dbus_handle_DeviceEvent (DBusConnection *bus, DBusMessage *message, void
     retval = (*klass->device_event) (listener, &event);
     if (retval != 0 && retval != 1)
     {
-      g_warning ("at-spi: device event handler returned %d; should be 0 or 1", retval);
+      g_warning ("AT-SPI: device event handler returned %d; should be 0 or 1", retval);
       retval = 0;
     }
   }
index cd92f99..385d0ee 100644 (file)
@@ -4,7 +4,7 @@
 /*** END file-header ***/
 
 /*** BEGIN file-production ***/
-/* enumerations from "@filename@" */
+/* enumerations from "@basename@" */
 #include "@filename@"
 
 /*** END file-production ***/
index bd297b5..789ad2e 100644 (file)
@@ -9,7 +9,7 @@ G_BEGIN_DECLS
 /*** END file-header ***/
 
 /*** BEGIN file-production ***/
-/* Enumerations from "@filename@" */
+/* Enumerations from "@basename@" */
 
 /*** END file-production ***/
 
index 752547d..6a3fe6b 100644 (file)
@@ -101,7 +101,7 @@ callback_unref (gpointer callback)
   info = g_hash_table_lookup (callbacks, callback);
   if (!info)
   {
-    g_warning ("Atspi: Dereferencing invalid callback %p\n", callback);
+    g_warning ("AT-SPI: Dereferencing invalid callback %p\n", callback);
     return;
   }
   info->ref_count--;
@@ -679,7 +679,7 @@ atspi_event_listener_register_from_callback_full (AtspiEventListenerCB callback,
     dbus_bus_add_match (_atspi_bus(), matchrule, &d_error);
     if (dbus_error_is_set (&d_error))
       {
-        g_warning ("Atspi: Adding match: %s", d_error.message);
+        g_warning ("AT-SPI: Adding match: %s", d_error.message);
         dbus_error_free (&d_error);
         /* TODO: Set error */
       }
@@ -916,7 +916,7 @@ _atspi_send_event (AtspiEvent *e)
 
   if (!convert_event_type_to_dbus (e->type, &category, &name, &detail, NULL))
   {
-    g_warning ("Atspi: Couldn't parse event: %s\n", e->type);
+    g_warning ("AT-SPI: Couldn't parse event: %s\n", e->type);
     return;
   }
   for (l = event_listeners; l; l = g_list_next (l))
index 3ab985b..588a60d 100644 (file)
@@ -33,7 +33,7 @@
 #define _(x) dgettext (GETTEXT_PACKAGE, x)
 #define N_(x) x
 
-/**
+/*
  * DBusGMessageQueue:
  * A GSource subclass for dispatching DBusConnection messages.
  * We need this on top of the IO handlers, because sometimes
@@ -41,8 +41,8 @@
  */
 typedef struct
 {
-  GSource source; /**< the parent GSource */
-  DBusConnection *connection; /**< the connection to dispatch */
+  GSource source; /* the parent GSource */
+  DBusConnection *connection; /* the connection to dispatch */
 } DBusGMessageQueue;
 
 static gboolean message_queue_prepare  (GSource     *source,
@@ -95,11 +95,11 @@ message_queue_dispatch (GSource     *source,
 
 typedef struct
 {
-  GMainContext *context;      /**< the main context */
-  GSList *ios;                /**< all IOHandler */
-  GSList *timeouts;           /**< all TimeoutHandler */
-  DBusConnection *connection; /**< NULL if this is really for a server not a connection */
-  GSource *message_queue_source; /**< DBusGMessageQueue */
+  GMainContext *context;      /* the main context */
+  GSList *ios;                /* all IOHandler */
+  GSList *timeouts;           /* all TimeoutHandler */
+  DBusConnection *connection; /* NULL if this is really for a server not a connection */
+  GSource *message_queue_source; /* DBusGMessageQueue */
 } ConnectionSetup;
 
 
@@ -510,7 +510,7 @@ connection_setup_new_from_old (GMainContext    *context,
   return cs;
 }
 
-/** @} */ /* End of GLib bindings internals */
+/* @} */ /* End of GLib bindings internals */
 
 /**
  * atspi_dbus_connection_setup_with_g_main: (skip)
index e995459..cf6a306 100644 (file)
@@ -164,7 +164,7 @@ atspi_match_rule_new (AtspiStateSet *states,
       if (role < 128)
         rule->roles [role / 32] |= (1 << (role % 32));
       else
-        g_warning ("Atspi: unexpected role %d\n", role);
+        g_warning ("AT-SPI: unexpected role %d\n", role);
     }
   }
   else
index fe5ca56..314746e 100644 (file)
@@ -125,7 +125,7 @@ void _atspi_dbus_set_state (AtspiAccessible *accessible, DBusMessageIter *iter);
   } \
   if (strcmp (dbus_message_get_signature (message), type) != 0) \
   { \
-    g_warning ("at-spi: Expected message signature %s but got %s at %s line %d", type, dbus_message_get_signature (message), __FILE__, __LINE__); \
+    g_warning ("AT-SPI: Expected message signature %s but got %s at %s line %d", type, dbus_message_get_signature (message), __FILE__, __LINE__); \
     dbus_message_unref (message); \
     return (ret); \
   }
index eebbed4..9b97b18 100644 (file)
@@ -203,7 +203,7 @@ handle_get_bus_address (DBusPendingCall *pending, void *user_data)
       else
       {
         if (!strcmp (error.name, DBUS_ERROR_FILE_NOT_FOUND))
-          g_warning ("Unable to open bus connection: %s", error.message);
+          g_warning ("AT-SPI: Unable to open bus connection: %s", error.message);
         dbus_error_free (&error);
       }
     }
@@ -1258,7 +1258,7 @@ _atspi_dbus_get_property (gpointer obj, const char *interface, const char *name,
   dbus_message_iter_init (reply, &iter);
   if (dbus_message_iter_get_arg_type (&iter) != 'v')
   {
-    g_warning ("AT-SPI: expected a variant when fetching %s from interface %s; got %s\n", name, interface, dbus_message_get_signature (reply));
+    g_warning ("atspi_dbus_get_property: expected a variant when fetching %s from interface %s; got %s\n", name, interface, dbus_message_get_signature (reply));
     goto done;
   }
   dbus_message_iter_recurse (&iter, &iter_variant);
@@ -1530,7 +1530,7 @@ get_accessibility_bus_address_dbus (void)
 
   if (!reply)
   {
-    g_warning ("Error retrieving accessibility bus address: %s: %s",
+    g_warning ("AT-SPI: Error retrieving accessibility bus address: %s: %s",
                error.name, error.message);
     dbus_error_free (&error);
     goto out;
@@ -1584,7 +1584,7 @@ atspi_get_a11y_bus (void)
 
   if (a11y_dbus_slot == -1)
     if (!dbus_connection_allocate_data_slot (&a11y_dbus_slot))
-      g_warning ("at-spi: Unable to allocate D-Bus slot");
+      g_warning ("AT-SPI: Unable to allocate D-Bus slot");
 
   address_env = g_getenv ("AT_SPI_BUS_ADDRESS");
   if (address_env != NULL && *address_env != 0)
index c9b11f0..76b1926 100644 (file)
@@ -426,8 +426,8 @@ atspi_deregister_device_event_listener (AtspiDeviceListener *listener,
 
 /**
  * atspi_generate_keyboard_event:
- * @keyval: a #gint indicating the keycode or keysym of the key event
- *           being synthesized.
+ * @keyval: a #gint indicating the keycode or keysym or modifier mask of the
+ *           key event being synthesized.
  * @keystring: (allow-none): an (optional) UTF-8 string which, if
  *           @synth_type is %ATSPI_KEY_STRING, indicates a 'composed'
  *           keyboard input string being synthesized; this type of
@@ -436,7 +436,8 @@ atspi_deregister_device_event_listener (AtspiDeviceListener *listener,
  *           input method (such as XIM) were used.
  * @synth_type: an #AtspiKeySynthType flag indicating whether @keyval
  *           is to be interpreted as a keysym rather than a keycode
- *           (%ATSPI_KEY_SYM) or a string (%ATSPI_KEY_STRING), or
+ *           (%ATSPI_KEY_SYM) or a string (%ATSPI_KEY_STRING) or a modifier
+ *           mask (%ATSPI_KEY_LOCKMODIFIERS and %ATSPI_KEY_UNLOCKMODIFIERS), or
  *           whether to synthesize %ATSPI_KEY_PRESS,
  *           %ATSPI_KEY_RELEASE, or both (%ATSPI_KEY_PRESSRELEASE).
  * @error: (allow-none): a pointer to a %NULL #GError pointer, or %NULL
index ea48ddb..b7a9357 100644 (file)
@@ -67,9 +67,9 @@ atspi_enums = gnome.mkenums('atspi-enum-types',
                             install_header: true)
 atspi_enum_h = atspi_enums[1]
 
-atspi = shared_library('atspi', atspi_sources + atspi_enums,
-                       version: soversion.split('.')[0],
-                       soversion: soversion,
+atspi = library('atspi', atspi_sources + atspi_enums,
+                       version: soversion,
+                       soversion: soversion.split('.')[0],
                        include_directories: [ root_inc, registryd_inc ],
                        dependencies: [ libdbus_dep, gobject_dep, dbind_dep, x11_deps ],
                        install: true)
@@ -90,7 +90,8 @@ if have_gir
 
   gir_extra_args = [
     '--c-include=atspi/atspi.h',
-    '--pkg-export=atspi-2'
+    '--pkg-export=atspi-2',
+    '--quiet',
   ]
 
   gir_dir = join_paths(atspi_datadir, 'gir-1.0')
@@ -112,3 +113,13 @@ if have_gir
   )
 endif
 
+pkgconfig = import('pkgconfig')
+pkgconfig.generate(
+  name: 'atspi',
+  description: 'Accessibility Technology software library',
+  version: meson.project_version(),
+  libraries: atspi,
+  requires: 'dbus-1 glib-2.0',
+  subdirs: 'at-spi-2.0',
+  filebase: 'atspi-2',
+)
diff --git a/autogen.sh b/autogen.sh
deleted file mode 100755 (executable)
index 4576400..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/bin/sh
-
-test -n "$srcdir" || srcdir=`dirname "$0"`
-test -n "$srcdir" || srcdir=.
-
-olddir=`pwd`
-cd "$srcdir"
-
-# run gtkdocize
-gtkdocize || exit 1
-
-# gnome-autogen.sh runs configure, so do likewise.
-autoreconf -vif
-
-cd "$olddir"
-
-test -n "$NOCONFIGURE" || "$srcdir/configure" "$@"
-
diff --git a/bus/Makefile.am b/bus/Makefile.am
deleted file mode 100644 (file)
index 688f82a..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-CLEANFILES =
-DISTCLEANFILES =
-EXTRA_DIST = \
-       meson.build
-
-libexec_PROGRAMS = at-spi-bus-launcher
-at_spi_bus_launcher_SOURCES = at-spi-bus-launcher.c
-at_spi_bus_launcher_CPPFLAGS = -DSYSCONFDIR=\"$(sysconfdir)\" \
-                               -DDATADIR=\"$(datadir)\" \
-                               -DDBUS_DAEMON=\"$(DBUS_DAEMON)\"
-at_spi_bus_launcher_CFLAGS = $(GIO_CFLAGS)
-at_spi_bus_launcher_LDADD = $(GIO_LIBS) $(X11_LIBS)
-
-substitutions = "s,@libexecdir[@],$(libexecdir),"
-
-default_sessiondir = $(sysconfdir)/xdg/autostart
-default_session_DATA = at-spi-dbus-bus.desktop
-at-spi-dbus-bus.desktop: at-spi-dbus-bus.desktop.in
-       $(AM_V_GEN) $(SED) -e$ $(substitutions)  $< > $@.tmp && mv $@.tmp $@
-
-EXTRA_DIST += at-spi-dbus-bus.desktop.in
-CLEANFILES += at-spi-dbus-bus.desktop
-
-dbusservicedir = $(DBUS_SERVICES_DIR)
-dbusservice_DATA = org.a11y.Bus.service
-org.a11y.Bus.service: org.a11y.Bus.service.in
-       $(AM_V_GEN) $(SED) -e $(substitutions) $< > $@.tmp && mv $@.tmp $@
-
-EXTRA_DIST += org.a11y.Bus.service.in
-CLEANFILES += org.a11y.Bus.service
-
-systemd_userdir = $(prefix)/lib/systemd/user
-systemd_user_DATA = at-spi-dbus-bus.service
-at-spi-dbus-bus.service: at-spi-dbus-bus.service.in Makefile
-       $(AM_V_GEN) $(SED) -e $(substitutions) $< > $@.tmp && mv $@.tmp $@
-
-EXTRA_DIST += at-spi-dbus-bus.service.in
-CLEANFILES += at-spi-dbus-bus.service
-
-busconfigdir = $(datadir)/defaults/at-spi2
-busconfig_DATA = accessibility.conf
-accessibility.conf: accessibility.conf.in
-       $(AM_V_GEN) $(SED) -e "s|[@]DATADIR[@]|$(datadir)|" $(srcdir)/$@.in > $@
-
-EXTRA_DIST += accessibility.conf.in
-CLEANFILES += accessibility.conf
-
--include $(top_srcdir)/git.mk
index 261353f..17f01c0 100644 (file)
@@ -2,7 +2,7 @@
  * 
  * at-spi-bus-launcher: Manage the a11y bus as a child process 
  *
- * Copyright 2011 Red Hat, Inc.
+ * Copyright 2011-2018 Red Hat, Inc.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
 #include <unistd.h>
 #include <string.h>
 #include <signal.h>
+#ifdef __linux__
+#include <sys/prctl.h>
+#include <sys/socket.h>
+#include <sys/un.h>
+#endif
 #include <sys/wait.h>
 #include <errno.h>
 #include <stdio.h>
@@ -50,6 +55,7 @@ typedef struct {
   GDBusConnection *session_bus;
   GSettings *a11y_schema;
   GSettings *interface_schema;
+  int name_owner_id;
 
   GDBusProxy *client_proxy;
 
@@ -58,6 +64,7 @@ typedef struct {
   int a11y_bus_pid;
   char *a11y_bus_address;
   int pipefd[2];
+  int listenfd;
   char *a11y_launch_error_message;
 } A11yBusLauncher;
 
@@ -215,23 +222,6 @@ name_appeared_handler (GDBusConnection *connection,
   register_client (app);
 }
 
-static void
-setup_bus_child (gpointer data)
-{
-  A11yBusLauncher *app = data;
-  (void) app;
-
-  close (app->pipefd[0]);
-  dup2 (app->pipefd[1], 3);
-  close (app->pipefd[1]);
-
-  /* On Linux, tell the bus process to exit if this process goes away */
-#ifdef __linux
-#include <sys/prctl.h>
-  prctl (PR_SET_PDEATHSIG, 15);
-#endif  
-}
-
 /**
  * unix_read_all_fd_to_string:
  *
@@ -244,7 +234,7 @@ unix_read_all_fd_to_string (int      fd,
 {
   ssize_t bytes_read;
 
-  while (max_bytes > 1 && (bytes_read = read (fd, buf, MAX (4096, max_bytes - 1))))
+  while (max_bytes > 1 && (bytes_read = read (fd, buf, MIN (4096, max_bytes - 1))))
     {
       if (bytes_read < 0)
         return FALSE;
@@ -276,33 +266,41 @@ on_bus_exited (GPid     pid,
   g_main_loop_quit (app->loop);
 } 
 
+#ifdef DBUS_DAEMON
+static void
+setup_bus_child_daemon (gpointer data)
+{
+  A11yBusLauncher *app = data;
+  (void) app;
+
+  close (app->pipefd[0]);
+  dup2 (app->pipefd[1], 3);
+  close (app->pipefd[1]);
+
+  /* On Linux, tell the bus process to exit if this process goes away */
+#ifdef __linux__
+  prctl (PR_SET_PDEATHSIG, 15);
+#endif
+}
+
 static gboolean
-ensure_a11y_bus (A11yBusLauncher *app)
+ensure_a11y_bus_daemon (A11yBusLauncher *app, char *config_path)
 {
+  char *argv[] = { DBUS_DAEMON, config_path, "--nofork", "--print-address", "3", NULL };
   GPid pid;
-  char *argv[] = { DBUS_DAEMON, NULL, "--nofork", "--print-address", "3", NULL };
   char addr_buf[2048];
   GError *error = NULL;
-  const char *config_path = NULL;
-
-  if (app->a11y_bus_pid != 0)
-    return FALSE;
-
-  if (g_file_test (SYSCONFDIR"/at-spi2/accessibility.conf", G_FILE_TEST_EXISTS))
-      config_path = "--config-file="SYSCONFDIR"/at-spi2/accessibility.conf";
-  else
-      config_path = "--config-file="DATADIR"/defaults/at-spi2/accessibility.conf";
-
-  argv[1] = config_path;
 
   if (pipe (app->pipefd) < 0)
     g_error ("Failed to create pipe: %s", strerror (errno));
-  
+
+  g_clear_pointer (&app->a11y_launch_error_message, g_free);
+
   if (!g_spawn_async (NULL,
                       argv,
                       NULL,
                       G_SPAWN_SEARCH_PATH | G_SPAWN_DO_NOT_REAP_CHILD,
-                      setup_bus_child,
+                      setup_bus_child_daemon,
                       app,
                       &pid,
                       &error))
@@ -335,6 +333,138 @@ ensure_a11y_bus (A11yBusLauncher *app)
   app->a11y_bus_address = g_strchomp (g_strdup (addr_buf));
   g_debug ("a11y bus address: %s", app->a11y_bus_address);
 
+  return TRUE;
+
+error:
+  close (app->pipefd[0]);
+  close (app->pipefd[1]);
+  app->state = A11Y_BUS_STATE_ERROR;
+
+  return FALSE;
+}
+#else
+static gboolean
+ensure_a11y_bus_daemon (A11yBusLauncher *app, char *config_path)
+{
+       return FALSE;
+}
+#endif
+
+#ifdef DBUS_BROKER
+static void
+setup_bus_child_broker (gpointer data)
+{
+  A11yBusLauncher *app = data;
+  gchar *pid_str;
+  (void) app;
+
+  dup2 (app->listenfd, 3);
+  close (app->listenfd);
+  g_setenv("LISTEN_FDS", "1", TRUE);
+
+  pid_str = g_strdup_printf("%u", getpid());
+  g_setenv("LISTEN_PID", pid_str, TRUE);
+  g_free(pid_str);
+
+  /* Tell the bus process to exit if this process goes away */
+  prctl (PR_SET_PDEATHSIG, SIGTERM);
+}
+
+static gboolean
+ensure_a11y_bus_broker (A11yBusLauncher *app, char *config_path)
+{
+  char *argv[] = { DBUS_BROKER, config_path, "--scope", "user", NULL };
+  struct sockaddr_un addr = { .sun_family = AF_UNIX };
+  socklen_t addr_len = sizeof(addr);
+  GPid pid;
+  GError *error = NULL;
+
+  if ((app->listenfd = socket (PF_UNIX, SOCK_STREAM | SOCK_NONBLOCK, 0)) < 0)
+    g_error ("Failed to create listening socket: %s", strerror (errno));
+
+  if (bind (app->listenfd, (struct sockaddr *)&addr, sizeof(sa_family_t)) < 0)
+    g_error ("Failed to bind listening socket: %s", strerror (errno));
+
+  if (getsockname (app->listenfd, (struct sockaddr *)&addr, &addr_len) < 0)
+    g_error ("Failed to get socket name for listening socket: %s", strerror(errno));
+
+  if (listen (app->listenfd, 1024) < 0)
+    g_error ("Failed to listen on socket: %s", strerror(errno));
+
+  g_clear_pointer (&app->a11y_launch_error_message, g_free);
+
+  if (!g_spawn_async (NULL,
+                      argv,
+                      NULL,
+                      G_SPAWN_SEARCH_PATH | G_SPAWN_DO_NOT_REAP_CHILD,
+                      setup_bus_child_broker,
+                      app,
+                      &pid,
+                      &error))
+    {
+      app->a11y_bus_pid = -1;
+      app->a11y_launch_error_message = g_strdup (error->message);
+      g_clear_error (&error);
+      goto error;
+    }
+
+  close (app->listenfd);
+  app->listenfd = -1;
+
+  g_child_watch_add (pid, on_bus_exited, app);
+  app->a11y_bus_pid = pid;
+  g_debug ("Launched a11y bus, child is %ld", (long) pid);
+  app->state = A11Y_BUS_STATE_RUNNING;
+
+  app->a11y_bus_address = g_strconcat("unix:abstract=", addr.sun_path + 1, NULL);
+  g_debug ("a11y bus address: %s", app->a11y_bus_address);
+
+  return TRUE;
+
+error:
+  close (app->listenfd);
+  app->state = A11Y_BUS_STATE_ERROR;
+
+  return FALSE;
+}
+#else
+static gboolean
+ensure_a11y_bus_broker (A11yBusLauncher *app, char *config_path)
+{
+       return FALSE;
+}
+#endif
+
+static gboolean
+ensure_a11y_bus (A11yBusLauncher *app)
+{
+  char *config_path = NULL;
+  gboolean success = FALSE;
+
+  if (app->a11y_bus_pid != 0)
+    return FALSE;
+
+  if (g_file_test (SYSCONFDIR"/at-spi2/accessibility.conf", G_FILE_TEST_EXISTS))
+      config_path = "--config-file="SYSCONFDIR"/at-spi2/accessibility.conf";
+  else
+      config_path = "--config-file="DATADIR"/defaults/at-spi2/accessibility.conf";
+
+#ifdef WANT_DBUS_BROKER
+    success = ensure_a11y_bus_broker (app, config_path);
+    if (!success)
+      {
+        if (!ensure_a11y_bus_daemon (app, config_path))
+            return FALSE;
+      }
+#else
+    success = ensure_a11y_bus_daemon (app, config_path);
+    if (!success)
+      {
+        if (!ensure_a11y_bus_broker (app, config_path))
+            return FALSE;
+      }
+#endif
+
 #ifdef HAVE_X11
   {
     Display *display = XOpenDisplay (NULL);
@@ -353,13 +483,6 @@ ensure_a11y_bus (A11yBusLauncher *app)
 #endif
 
   return TRUE;
-  
- error:
-  close (app->pipefd[0]);
-  close (app->pipefd[1]);
-  app->state = A11Y_BUS_STATE_ERROR;
-
-  return FALSE;
 }
 
 static void
@@ -695,6 +818,15 @@ already_running ()
 static GSettings *
 get_schema (const gchar *name)
 {
+#if GLIB_CHECK_VERSION (2, 32, 0)
+  GSettingsSchemaSource *source = g_settings_schema_source_get_default ();
+  GSettingsSchema *schema = g_settings_schema_source_lookup (source, name, FALSE);
+
+  if (schema == NULL)
+    return NULL;
+
+  return g_settings_new_full (schema, NULL, NULL);
+#else
   const char * const *schemas = NULL;
   gint i;
 
@@ -706,13 +838,13 @@ get_schema (const gchar *name)
   }
 
   return NULL;
+#endif
 }
 
 static void
 gsettings_key_changed (GSettings *gsettings, const gchar *key, void *user_data)
 {
   gboolean new_val = g_settings_get_boolean (gsettings, key);
-  A11yBusLauncher *app = user_data;
 
   if (!strcmp (key, "toolkit-accessibility"))
     handle_a11y_enabled_change (_global_app, new_val, FALSE);
@@ -724,10 +856,6 @@ int
 main (int    argc,
       char **argv)
 {
-  GError *error = NULL;
-  GMainLoop *loop;
-  GDBusConnection *session_bus;
-  int name_owner_id;
   gboolean a11y_set = FALSE;
   gboolean screen_reader_set = FALSE;
   gint i;
@@ -783,14 +911,15 @@ main (int    argc,
   introspection_data = g_dbus_node_info_new_for_xml (introspection_xml, NULL);
   g_assert (introspection_data != NULL);
 
-  name_owner_id = g_bus_own_name (G_BUS_TYPE_SESSION,
-                                  "org.a11y.Bus",
-                                  G_BUS_NAME_OWNER_FLAGS_ALLOW_REPLACEMENT,
-                                  on_bus_acquired,
-                                  on_name_acquired,
-                                  on_name_lost,
-                                  _global_app,
-                                  NULL);
+  _global_app->name_owner_id =
+    g_bus_own_name (G_BUS_TYPE_SESSION,
+                    "org.a11y.Bus",
+                    G_BUS_NAME_OWNER_FLAGS_ALLOW_REPLACEMENT,
+                    on_bus_acquired,
+                    on_name_acquired,
+                    on_name_lost,
+                    _global_app,
+                    NULL);
 
   g_main_loop_run (_global_app->loop);
 
index 909103c..5c7e03d 100644 (file)
@@ -31,8 +31,13 @@ configure_file(input: 'at-spi-dbus-bus.service.in',
                install: true,
                install_dir: systemd_user_dir)
 
+launcher_args = [
+             '-DSYSCONFDIR="@0@"'.format(atspi_sysconfdir),
+             '-DDATADIR="@0@"'.format(atspi_datadir),
+           ]
+
 if get_option('dbus_daemon') != 'default'
-  dbus_daemon = get_option('dbus_daemon')
+  launcher_args += '-DDBUS_DAEMON="@0@"'.format(get_option('dbus_daemon'))
 else
   dbus_daemon = find_program('dbus-daemon',
                              '/sbin/dbus-daemon',
@@ -40,16 +45,29 @@ else
                              '/libexec/dbus-daemon',
                              '/usr/libexec/dbus-daemon',
                              '/usr/pkg/bin/dbus-daemon',
-                             required: true).path()
+                             required: false)
+  if dbus_daemon.found()
+    launcher_args += '-DDBUS_DAEMON="@0@"'.format(dbus_daemon.path())
+  endif
+endif
+
+if get_option('dbus_broker') != 'default'
+  launcher_args += '-DDBUS_BROKER="@0@"'.format(get_option('dbus_broker'))
+else
+  dbus_broker = find_program('dbus-broker-launch',
+                             required: false)
+  if dbus_broker.found()
+    launcher_args += '-DDBUS_BROKER="@0@"'.format(dbus_broker.path())
+  endif
+endif
+
+if get_option('default_bus') == 'dbus-broker'
+  launcher_args += '-DWANT_DBUS_BROKER'
 endif
 
 executable('at-spi-bus-launcher', 'at-spi-bus-launcher.c',
            include_directories: [ root_inc, include_directories('.') ],
            dependencies: [ gio_dep, x11_deps ],
-           c_args: [
-             '-DSYSCONFDIR="@0@"'.format(atspi_sysconfdir),
-             '-DDATADIR="@0@"'.format(atspi_datadir),
-             '-DDBUS_DAEMON="@0@"'.format(dbus_daemon),
-           ],
+           c_args: launcher_args,
            install: true,
            install_dir: atspi_libexecdir)
diff --git a/configure.ac b/configure.ac
deleted file mode 100644 (file)
index a84dcbd..0000000
+++ /dev/null
@@ -1,188 +0,0 @@
-AC_INIT([at-spi2-core], [2.26.1], [accessibility-atspi@lists.linux-foundation.org])
-AC_PREREQ([2.59])
-AC_CONFIG_AUX_DIR(config)
-AC_CONFIG_MACRO_DIR([m4])
-
-AT_SPI_CORE_MAJOR_VERSION=0
-AT_SPI_CORE_MINOR_VERSION=1
-AT_SPI_CORE_MICRO_VERSION=3
-AT_SPI_CORE_VERSION="$AT_SPI_CORE_MAJOR_VERSION.$AT_SPI_CORE_MINOR_VERSION"
-AC_SUBST(AT_SPI_CORE_VERSION)
-
-LT_RELEASE=$AT_SPI_CORE_VERSION
-LT_CURRENT=0
-LT_REVISION=1
-LT_AGE=0
-LT_VERSION_INFO='-version-info ${LT_CURRENT}:${LT_REVISION}:${LT_AGE}'
-AC_SUBST(LT_VERSION_INFO)
-AC_SUBST(LT_RELEASE)
-AC_SUBST(LT_CURRENT)
-AC_SUBST(LT_REVISION)
-AC_SUBST(LT_AGE)
-
-AM_INIT_AUTOMAKE([1.13 -Wall -Wno-portability foreign subdir-objects no-dist-gzip dist-xz])
-
-# Support silent build rules. Disable
-# by either passing --disable-silent-rules to configure or passing V=1
-# to make
-AM_SILENT_RULES([yes])
-
-AM_PROG_CC_C_O
-LT_INIT([disable-static])
-PKG_PROG_PKG_CONFIG
-
-AC_CONFIG_HEADERS([config.h])
-
-AC_PROG_SED
-
-AM_GNU_GETTEXT_VERSION([0.19.8])
-AM_GNU_GETTEXT([external])
-
-GETTEXT_PACKAGE="${PACKAGE}"
-AC_SUBST(GETTEXT_PACKAGE)
-AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],
-                   ["$GETTEXT_PACKAGE"],
-                   [The prefix for our gettext translation domains.])
-
-PKG_CHECK_MODULES(DBUS, [dbus-1 >= 1.0])
-AC_SUBST(DBUS_LIBS)
-AC_SUBST(DBUS_CFLAGS)
-
-PKG_CHECK_MODULES(GLIB, [glib-2.0 >= 2.36.0])
-AC_SUBST(GLIB_LIBS)
-AC_SUBST(GLIB_CFLAGS)
-
-# Use pkg-config to find the glib-mkenums script
-GLIB_MKENUMS=`$PKG_CONFIG --variable=glib_mkenums glib-2.0`
-AC_SUBST(GLIB_MKENUMS)
-
-PKG_CHECK_MODULES(GOBJ, [gobject-2.0 >= 2.0.0])
-AC_SUBST(GOBJ_LIBS)
-AC_SUBST(GOBJ_CFLAGS)
-
-PKG_CHECK_MODULES(GIO, [gio-2.0 >= 2.28])
-AC_SUBST(GIO_LIBS)
-AC_SUBST(GIO_CFLAGS)
-
-# --------------------------------------------------------------------
-# Find DL functionality
-
-AC_CHECK_LIB(c, dlopen, DL_LIBS="",
-        AC_CHECK_LIB(dl, dlopen, DL_LIBS="-ldl",
-                AC_MSG_ERROR([Could not find a library with the dlopen function])
-        )
-)
-
-AC_SUBST(DL_LIBS)
-
-AC_ARG_ENABLE(x11,
-              [AS_HELP_STRING([--disable-x11],
-                              [disable the X11 backend])],,
-                             [enable_x11=auto])
-
-AS_IF([test "x$enable_x11" = xno], [
-  AM_CONDITIONAL(USE_X11, false)
-], [
-  PKG_CHECK_MODULES(X11, [x11], [
-    AC_DEFINE(HAVE_X11, 1, [Define to use X11])
-    AC_SUBST(HAVE_X11)
-    have_x11=yes
-  ], [
-    AS_IF([test "x$enable_x11" = xyes], [
-      AC_MSG_ERROR([Unable to find X11 development files])
-    ])
-    have_x11=no
-  ])
-
-  # Check for additional X11 extensions
-  AS_IF([test "x$have_x11" = xyes], [
-    # XTest (mandatory)
-    PKG_CHECK_MODULES(XTST, [xtst])
-    X11_CFLAGS="$X11_CFLAGS $XTST_CFLAGS"
-    X11_LIBS="$X11_LIBS $XTST_LIBS"
-
-    # XInput (mandatory)
-    PKG_CHECK_MODULES(XINPUT, [xi])
-    X11_CFLAGS="$X11_CFLAGS $XINPUT_CFLAGS"
-    X11_LIBS="$X11_LIBS $XINPUT_LIBS"
-
-    # XKB (optional)
-    AC_CHECK_LIB(X11, XkbGetMap, [
-      AC_DEFINE(HAVE_XKB, 1, [Define to use XKB])
-    ], [:])
-  ])
-
-  AC_SUBST(X11_CFLAGS)
-  AC_SUBST(X11_LIBS)
-
-  AM_CONDITIONAL(USE_X11, test "x$have_x11" = xyes)
-])
-
-AC_ARG_WITH([dbus_daemondir],
-       [AS_HELP_STRING([--with-dbus-daemondir=<directory>],
-               [Directory where the DBUS daemon is installed])],
-    [DBUS_DAEMON="$with_dbus_daemondir/dbus-daemon"],
-    [AC_PATH_PROG([DBUS_DAEMON], [dbus-daemon], [XXXDBUSDAEMONNOTFOUND],
-               [$PATH$PATH_SEPARATOR/sbin$PATH_SEPARATOR/usr/sbin$PATH_SEPARATOR]dnl
-[/libexec$PATH_SEPARATOR/usr/libexec$PATH_SEPARATOR/usr/local/bin]dnl
-[$PATH_SEPARATOR/usr/pkg/bin])]
-       )
-if test "$DBUS_DAEMON" = "XXXDBUSDAEMONNOTFOUND"; then
-       DBUS_DAEMON = "$bindir/dbus-daemon"
-       AC_MSG_WARN([at-spi2 relies on dbus, and the dbus-daemon was not found])
-       AC_MSG_WARN([we assume that it will be installed in "$bindir"])
-fi
-AC_SUBST(DBUS_DAEMON)
-
-AC_ARG_WITH(dbus-services,
-           [AS_HELP_STRING([--with-dbus-services=<directory>],
-           [where D-BUS services directory is])])
-if ! test -z "$with_dbus_services" ; then
-           DBUS_SERVICES_DIR="$with_dbus_services"
-else
-           DBUS_SERVICES_DIR="$datadir/dbus-1/services"
-fi
-AC_SUBST(DBUS_SERVICES_DIR)
-
-GOBJECT_INTROSPECTION_CHECK([1.32.0])
-
-AC_SUBST(LIBTOOL_EXPORT_OPTIONS)
-
-dnl find sizes & alignments
-orig_CPPFLAGS=$CPPFLAGS
-CPPFLAGS="$CPPFLAGS $DBUS_CFLAGS"
-AC_CHECK_ALIGNOF(char)
-AC_CHECK_ALIGNOF(dbus_bool_t, [#include <dbus/dbus.h>])
-AC_CHECK_ALIGNOF(dbus_int16_t, [#include <dbus/dbus.h>])
-AC_CHECK_ALIGNOF(dbus_int32_t, [#include <dbus/dbus.h>])
-AC_CHECK_ALIGNOF(dbus_int64_t, [#include <dbus/dbus.h>])
-AC_CHECK_ALIGNOF(double, [#include <dbus/dbus.h>])
-AC_CHECK_ALIGNOF(dbind_pointer, [AC_INCLUDES_DEFAULT
-typedef void *dbind_pointer;])
-AC_CHECK_ALIGNOF(dbind_struct, [AC_INCLUDES_DEFAULT
-typedef struct {char s1;} dbind_struct;])
-
-GTK_DOC_CHECK([1.25])
-
-if test "x$GCC" = xyes; then
-       CFLAGS="$CFLAGS -Werror-implicit-function-declaration"
-fi
-
-CPPFLAGS=$orig_CPPFLAGS 
-
-AC_CONFIG_FILES([
-        Makefile
-        po/Makefile.in
-       xml/Makefile
-       dbind/Makefile
-       atspi/Makefile
-       registryd/Makefile
-       bus/Makefile
-        doc/Makefile
-        doc/libatspi/Makefile
-        doc/libatspi/version.xml
-        test/Makefile
-        atspi-2.pc
-])
-
-AC_OUTPUT
diff --git a/dbind/Makefile.am b/dbind/Makefile.am
deleted file mode 100644 (file)
index 6594e3e..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-noinst_LTLIBRARIES = libdbind.la
-
-AM_CPPFLAGS = \
-       -DG_LOG_DOMAIN=\"dbind\" \
-       -I$(top_srcdir) \
-       $(WARN_CFLAGS) \
-       $(DBUS_CFLAGS) \
-       $(GLIB_CFLAGS)
-
-libdbind_la_SOURCES = \
-        dbind.h \
-       dbind.c \
-        dbind-any.h \
-       dbind-any.c
-libdbind_la_LIBADD = $(DBUS_LIBS) $(GLIB_LIBS)
-
-TESTS = dbtest
-
-check_PROGRAMS = dbtest
-dbtest_SOURCES = dbtest.c ../atspi/atspi-gmain.c
-dbtest_LDFLAGS = libdbind.la
-dbtest_LDADD = $(DBUS_LIBS)
-
-EXTRA_DIST = \
-       meson.build
-
--include $(top_srcdir)/git.mk
index abd241a..42c1919 100644 (file)
@@ -27,7 +27,7 @@
 #define DESKICE_PATH      "/Novell/ICEDesktop/Daemon"
 #define DESKICE_NAMESPACE "Novell.ICEDesktop.Daemon"
 
-void marshal (DBusMessage *msg, char *type, void *ptr)
+void marshal (DBusMessage *msg, const char *type, void *ptr)
 {
     DBusMessageIter iter;
 
@@ -35,7 +35,7 @@ void marshal (DBusMessage *msg, char *type, void *ptr)
     dbind_any_marshal (&iter, &type, &ptr);
 }
 
-void demarshal (DBusMessage *msg, char *type, void *ptr)
+void demarshal (DBusMessage *msg, const char *type, void *ptr)
 {
     DBusMessageIter iter;
 
@@ -317,8 +317,8 @@ void test_twovals ()
     DBusMessage *msg;
     DBusMessageIter iter;
     TwoVal i, o;
-    char *type_twoval = TYPEOF_TWOVAL;
-    char *type;
+    const char *type_twoval = TYPEOF_TWOVAL;
+    const char *type;
     void *ptr;
 
     msg = dbus_message_new (DBUS_MESSAGE_TYPE_METHOD_CALL);
index e122645..5a9f02d 100644 (file)
@@ -3,12 +3,10 @@ dbind_sources = [
   'dbind-any.c',
 ]
 
-dbind = static_library('dbind', dbind_sources,
-                       include_directories: root_inc,
-                       dependencies: [ libdbus_dep, glib_dep ],
-                       c_args: [ '-DG_LOG_DOMAIN="dbind"' ])
-
-dbind_dep = declare_dependency(link_with: dbind)
+dbind_dep = declare_dependency(sources: dbind_sources,
+                               include_directories: root_inc,
+                               compile_args: [ '-DG_LOG_DOMAIN="dbind"' ],
+                               dependencies: [ libdbus_dep, glib_dep ])
 
 test('dbind-test',
      executable('dbind-test', [ 'dbtest.c', '../atspi/atspi-gmain.c' ],
diff --git a/doc/Makefile.am b/doc/Makefile.am
deleted file mode 100644 (file)
index b478520..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-
-SUBDIRS=libatspi
-
--include $(top_srcdir)/git.mk
index 8b9ff0d..935767c 100644 (file)
@@ -42,8 +42,6 @@
     <xi:include href="xml/atspi-types.xml"/>
     <xi:include href="xml/atspi-constants.xml"/>
     <xi:include href="xml/atspi-misc.xml"/>
-    <xi:include href="xml/atspi-misc-private.xml"/>
-    <xi:include href="xml/atspi-listener-private.xml"/>
 
   </chapter>
   <chapter id="object-tree">
index 78abe76..14304ff 100644 (file)
@@ -1,10 +1,8 @@
 <SECTION>
 <FILE>atspi-text</FILE>
 AtspiRange
-ATSPI_TYPE_RANGE
 atspi_range_copy
 AtspiTextRange
-ATSPI_TYPE_TEXT_RANGE
 atspi_text_get_type
 AtspiText
 atspi_text_range_get_type
@@ -29,12 +27,17 @@ atspi_text_get_selection
 atspi_text_add_selection
 atspi_text_remove_selection
 atspi_text_set_selection
+atspi_text_get_string_at_offset
+atspi_text_get_text_attribute_value
+atspi_text_get_text_attributes
 <SUBSECTION Standard>
 ATSPI_TEXT
 ATSPI_IS_TEXT
 ATSPI_TYPE_TEXT
 atspi_range_get_type
 ATSPI_TEXT_GET_IFACE
+ATSPI_TYPE_RANGE
+ATSPI_TYPE_TEXT_RANGE
 </SECTION>
 
 <SECTION>
@@ -97,6 +100,9 @@ AtspiAction
 atspi_action_get_n_actions
 atspi_action_get_description
 atspi_action_get_key_binding
+atspi_action_get_action_description
+atspi_action_get_action_name
+atspi_action_get_localized_name
 atspi_action_get_name
 atspi_action_do_action
 <SUBSECTION Standard>
@@ -161,6 +167,10 @@ AtspiDocument
 atspi_document_get_locale
 atspi_document_get_attribute_value
 atspi_document_get_attributes
+atspi_document_get_current_page_number
+atspi_document_get_document_attribute_value
+atspi_document_get_document_attributes
+atspi_document_get_page_count
 <SUBSECTION Standard>
 ATSPI_DOCUMENT
 ATSPI_IS_DOCUMENT
@@ -207,6 +217,8 @@ atspi_accessible_get_attributes_as_array
 atspi_accessible_get_locale
 atspi_accessible_get_toolkit_name
 atspi_accessible_get_toolkit_version
+atspi_accessible_get_atspi_version
+atspi_accessible_get_id
 atspi_accessible_get_application
 atspi_accessible_get_action
 atspi_accessible_get_collection
@@ -218,8 +230,24 @@ atspi_accessible_get_hypertext
 atspi_accessible_get_image
 atspi_accessible_get_selection
 atspi_accessible_get_table
+atspi_accessible_get_table_cell
 atspi_accessible_get_text
 atspi_accessible_get_value
+atspi_accessible_get_object_locale 
+atspi_accessible_set_cache_mask 
+atspi_accessible_clear_cache
+atspi_accessible_get_process_id
+atspi_accessible_get_action_iface
+atspi_accessible_get_collection_iface
+atspi_accessible_get_component_iface
+atspi_accessible_get_document_iface
+atspi_accessible_get_editable_text_iface
+atspi_accessible_get_hypertext_iface
+atspi_accessible_get_image_iface
+atspi_accessible_get_selection_iface
+atspi_accessible_get_table_iface
+atspi_accessible_get_text_iface
+atspi_accessible_get_value_iface
 atspi_accessible_get_interfaces
 <SUBSECTION Standard>
 ATSPI_ACCESSIBLE
@@ -229,6 +257,9 @@ atspi_accessible_get_type
 ATSPI_ACCESSIBLE_CLASS
 ATSPI_IS_ACCESSIBLE_CLASS
 ATSPI_ACCESSIBLE_GET_CLASS
+
+<SUBSECTION Private>
+AtspiAccessiblePrivate
 </SECTION>
 
 <SECTION>
@@ -253,6 +284,20 @@ ATSPI_DEVICE_LISTENER_GET_CLASS
 </SECTION>
 
 <SECTION>
+<FILE>atspi-hypertext</FILE>
+AtspiHypertext
+atspi_hypertext_get_n_links
+atspi_hypertext_get_link
+atspi_hypertext_get_link_index
+<SUBSECTION Standard>
+ATSPI_HYPERTEXT
+ATSPI_IS_HYPERTEXT
+ATSPI_TYPE_HYPERTEXT
+atspi_hypertext_get_type
+ATSPI_HYPERTEXT_GET_IFACE
+</SECTION>
+
+<SECTION>
 <FILE>atspi-hyperlink</FILE>
 <TITLE>AtspiHyperlink</TITLE>
 AtspiHyperlink
@@ -278,7 +323,6 @@ ATSPI_HYPERLINK_GET_CLASS
 <SECTION>
 <FILE>atspi-editabletext</FILE>
 AtspiEditableText
-atspi_editable_text_set_attributes
 atspi_editable_text_insert_text
 atspi_editable_text_copy_text
 atspi_editable_text_cut_text
@@ -290,6 +334,8 @@ ATSPI_IS_EDITABLE_TEXT
 ATSPI_TYPE_EDITABLE_TEXT
 atspi_editable_text_get_type
 ATSPI_EDITABLE_TEXT_GET_IFACE
+<SUBSECTION Private>
+atspi_editable_text_set_attributes
 </SECTION>
 
 <SECTION>
@@ -356,12 +402,13 @@ atspi_table_cell_get_position
 atspi_table_cell_get_row_column_span
 atspi_table_cell_get_table
 <SUBSECTION Standard>
-ATSPI_TABLE
-ATSPI_IS_TABLE
-ATSPI_TYPE_TABLE
-atspi_table_get_type
-ATSPI_TABLE_GET_IFACE
+ATSPI_TABLE_CELL
+ATSPI_IS_TABLE_CELL
+ATSPI_TYPE_TABLE_CELL
+atspi_table_cell_get_type
+ATSPI_TABLE_CELL_GET_IFACE
 </SECTION>
+
 <SECTION>
 <FILE>atspi-selection</FILE>
 AtspiSelection
@@ -393,7 +440,9 @@ atspi_event_listener_new
 atspi_event_listener_new_simple
 atspi_event_listener_register
 atspi_event_listener_register_from_callback
+atspi_event_listener_register_from_callback_full
 atspi_event_listener_register_no_data
+atspi_event_listener_register_full
 atspi_event_listener_deregister
 atspi_event_listener_deregister_from_callback
 atspi_event_listener_deregister_no_data
@@ -408,20 +457,6 @@ ATSPI_EVENT_LISTENER_GET_CLASS
 </SECTION>
 
 <SECTION>
-<FILE>atspi-hypertext</FILE>
-AtspiHypertext
-atspi_hypertext_get_n_links
-atspi_hypertext_get_link
-atspi_hypertext_get_link_index
-<SUBSECTION Standard>
-ATSPI_HYPERTEXT
-ATSPI_IS_HYPERTEXT
-ATSPI_TYPE_HYPERTEXT
-atspi_hypertext_get_type
-ATSPI_HYPERTEXT_GET_IFACE
-</SECTION>
-
-<SECTION>
 <FILE>atspi-component</FILE>
 AtspiRect
 ATSPI_TYPE_RECT
@@ -441,6 +476,11 @@ atspi_component_get_layer
 atspi_component_get_mdi_z_order
 atspi_component_grab_focus
 atspi_component_get_alpha
+atspi_component_scroll_to
+atspi_component_scroll_to_point
+atspi_component_set_extents
+atspi_component_set_position
+atspi_component_set_size
 <SUBSECTION Standard>
 ATSPI_COMPONENT
 ATSPI_IS_COMPONENT
@@ -465,20 +505,6 @@ atspi_generate_mouse_event
 
 <SECTION>
 <FILE>atspi-types</FILE>
-AtspiAccessible
-AtspiAction
-AtspiCollection
-AtspiComponent
-AtspiDocument
-AtspiEditableText
-AtspiHyperlink
-AtspiHypertext
-AtspiImage
-AtspiSelection
-AtspiTable
-AtspiTableCell
-AtspiText
-AtspiValue
 AtspiControllerEventMask
 AtspiKeyMaskType
 AtspiKeyEventMask
@@ -487,9 +513,13 @@ AtspiDeviceEvent
 AtspiEventListenerMode
 AtspiKeyDefinition
 AtspiEvent
-ATSPI_TYPE_EVENT
 AtspiKeystrokeListener
 AtspiKeyListenerSyncType
+
+<SUBSECTION Standard>
+ATSPI_TYPE_EVENT
+atspi_device_event_get_type
+atspi_key_listener_sync_type_get_type
 </SECTION>
 
 <SECTION>
@@ -506,6 +536,7 @@ AtspiCollectionTreeTraversalType
 ATSPI_TREETRAVERSALTYPE
 AtspiComponentLayer
 ATSPI_COMPONENTLAYER_COUNT
+AtspiTextGranularity
 AtspiTextBoundaryType
 ATSPI_TEXT_BOUNDARY_TYPE_COUNT
 AtspiTextClipType
@@ -524,40 +555,83 @@ AtspiRelationType
 ATSPI_RELATIONTYPE_COUNT
 AtspiRole
 ATSPI_ROLE_COUNT
+AtspiCache
+AtspiScrollType
+ATSPI_SCROLLTYPE_COUNT
+
+<SUBSECTION Standard>
+atspi_cache_get_type
+atspi_collection_match_type_get_type
+atspi_collection_sort_order_get_type
+atspi_collection_tree_traversal_type_get_type
+atspi_component_layer_get_type
+atspi_coord_type_get_type
+atspi_event_type_get_type
+atspi_key_event_type_get_type
+atspi_key_synth_type_get_type
+atspi_locale_type_get_type
+atspi_modifier_type_get_type
+atspi_modifier_type_get_type
+atspi_relation_type_get_type
+atspi_role_get_type
+atspi_scroll_type_get_type
+atspi_state_type_get_type
+atspi_text_boundary_type_get_type
+atspi_text_clip_type_get_type
+atspi_text_granularity_get_type
+ATSPI_TYPE_CACHE
+ATSPI_TYPE_COLLECTION_MATCH_TYPE
+ATSPI_TYPE_COLLECTION_SORT_ORDER
+ATSPI_TYPE_COLLECTION_TREE_TRAVERSAL_TYPE
+ATSPI_TYPE_COMPONENT_LAYER
+ATSPI_TYPE_COORD_TYPE
+ATSPI_TYPE_DEVICE_EVENT
+ATSPI_TYPE_EVENT_TYPE
+ATSPI_TYPE_KEY_EVENT_TYPE
+ATSPI_TYPE_KEY_LISTENER_SYNC_TYPE
+ATSPI_TYPE_KEY_SYNTH_TYPE
+ATSPI_TYPE_LOCALE_TYPE
+ATSPI_TYPE_MODIFIER_TYPE
+ATSPI_TYPE_RELATION_TYPE
+ATSPI_TYPE_ROLE
+ATSPI_TYPE_SCROLL_TYPE
+ATSPI_TYPE_STATE_TYPE
+ATSPI_TYPE_TEXT_BOUNDARY_TYPE
+ATSPI_TYPE_TEXT_CLIP_TYPE
+ATSPI_TYPE_TEXT_GRANULARITY
 </SECTION>
 
 <SECTION>
 <FILE>atspi-misc</FILE>
 atspi_init
+atspi_is_initialized
+atspi_set_timeout
+atspi_set_main_context
 atspi_event_main
 atspi_event_quit
 atspi_exit
-</SECTION>
 
-<SECTION>
-<FILE>atspi-misc-private</FILE>
-ATSPI_CACHE_PARENT
+<SUBSECTION Private>
+atspi_main_loop
+atspi_get_a11y_bus
+atspi_dbus_connection_setup_with_g_main
+atspi_dbus_server_setup_with_g_main
+atspi_bus_registry
 ATSPI_CACHE_CHILDREN
-ATSPI_CACHE_NAME
 ATSPI_CACHE_DESCRIPTION
-ATSPI_CACHE_STATES
-ATSPI_CACHE_ROLE
 ATSPI_CACHE_INTERFACES
-AtspiReference
-ATSPI_DBUS_NAME_REGISTRY
-ATSPI_DBUS_PATH_REGISTRY
-ATSPI_DBUS_INTERFACE_REGISTRY
-ATSPI_DBUS_PATH_NULL
-ATSPI_DBUS_PATH_ROOT
-ATSPI_DBUS_PATH_DEC
-ATSPI_DBUS_INTERFACE_DEC
-ATSPI_DBUS_INTERFACE_DEVICE_EVENT_LISTENER
-ATSPI_DBUS_INTERFACE_CACHE
+ATSPI_CACHE_NAME
+ATSPI_CACHE_PARENT
+ATSPI_CACHE_ROLE
+ATSPI_CACHE_STATES
 ATSPI_DBUS_INTERFACE_ACCESSIBLE
 ATSPI_DBUS_INTERFACE_ACTION
 ATSPI_DBUS_INTERFACE_APPLICATION
+ATSPI_DBUS_INTERFACE_CACHE
 ATSPI_DBUS_INTERFACE_COLLECTION
 ATSPI_DBUS_INTERFACE_COMPONENT
+ATSPI_DBUS_INTERFACE_DEC
+ATSPI_DBUS_INTERFACE_DEVICE_EVENT_LISTENER
 ATSPI_DBUS_INTERFACE_DOCUMENT
 ATSPI_DBUS_INTERFACE_EDITABLE_TEXT
 ATSPI_DBUS_INTERFACE_EVENT_KEYBOARD
@@ -566,18 +640,22 @@ ATSPI_DBUS_INTERFACE_EVENT_OBJECT
 ATSPI_DBUS_INTERFACE_HYPERLINK
 ATSPI_DBUS_INTERFACE_HYPERTEXT
 ATSPI_DBUS_INTERFACE_IMAGE
+ATSPI_DBUS_INTERFACE_REGISTRY
 ATSPI_DBUS_INTERFACE_SELECTION
+ATSPI_DBUS_INTERFACE_SOCKET
 ATSPI_DBUS_INTERFACE_TABLE
+ATSPI_DBUS_INTERFACE_TABLE_CELL
 ATSPI_DBUS_INTERFACE_TEXT
 ATSPI_DBUS_INTERFACE_VALUE
-ATSPI_DBUS_INTERFACE_SOCKET
-atspi_path_dec
-atspi_path_registry
-atspi_path_root
-atspi_bus_registry
+ATSPI_DBUS_NAME_REGISTRY
+ATSPI_DBUS_PATH_DEC
+ATSPI_DBUS_PATH_NULL
+ATSPI_DBUS_PATH_REGISTRY
+ATSPI_DBUS_PATH_ROOT
 atspi_interface_accessible
 atspi_interface_action
 atspi_interface_application
+atspi_interface_cache
 atspi_interface_collection
 atspi_interface_component
 atspi_interface_dec
@@ -592,12 +670,13 @@ atspi_interface_selection
 atspi_interface_table
 atspi_interface_table_cell
 atspi_interface_text
-atspi_interface_cache
 atspi_interface_value
-</SECTION>
+atspi_no_cache
+atspi_path_dec
+atspi_path_registry
+atspi_path_root
+AtspiReference
+AtspiError
+ATSPI_ERROR
 
-<SECTION>
-<FILE>atspi-listener-private</FILE>
-atspi_dbus_handle_deviceEvent
 </SECTION>
-
index 8763873..af2ec33 100644 (file)
@@ -39,6 +39,26 @@ Constant definitions needed by multiple interfaces.
 
 
 
+<!-- ##### ENUM AtspiScrollType ##### -->
+<para>
+
+</para>
+
+@ATSPI_SCROLL_TOP_LEFT:
+@ATSPI_SCROLL_BOTTOM_RIGHT:
+@ATSPI_SCROLL_TOP_EDGE:
+@ATSPI_SCROLL_BOTTOM_EDGE:
+@ATSPI_SCROLL_LEFT_EDGE:
+@ATSPI_SCROLL_RIGHT_EDGE:
+@ATSPI_SCROLL_ANYWHERE:
+
+<!-- ##### MACRO ATSPI_SCROLLTYPE_COUNT ##### -->
+<para>
+
+</para>
+
+
+
 <!-- ##### ENUM AtspiCoordType ##### -->
 <para>
 
@@ -46,6 +66,7 @@ Constant definitions needed by multiple interfaces.
 
 @ATSPI_COORD_TYPE_SCREEN: 
 @ATSPI_COORD_TYPE_WINDOW: 
+@ATSPI_COORD_TYPE_PARENT:
 
 <!-- ##### MACRO ATSPI_COORD_TYPE_COUNT ##### -->
 <para>
@@ -270,6 +291,8 @@ Constant definitions needed by multiple interfaces.
 @ATSPI_KEY_PRESSRELEASE: 
 @ATSPI_KEY_SYM: 
 @ATSPI_KEY_STRING: 
+@ATSPI_KEY_LOCKMODIFIERS: 
+@ATSPI_KEY_UNLOCKMODIFIERS: 
 
 <!-- ##### MACRO ATSPI_KEYSYNTHTYPE_COUNT ##### -->
 <para>
index aa40e78..31cfbf0 100644 (file)
@@ -54,7 +54,30 @@ interface org.freestandards.atspi.Component {
                LAYER_WINDOW,
                LAYER_LAST_DEFINED
        }
-       
+
+       /*
+         Describes where the object should be placed on the window.
+        */
+       enum uint32 ScrollType {
+               SCROLL_TOP_LEFT = 0,
+               SCROLL_BOTTOM_RIGHT,
+               SCROLL_TOP_EDGE,
+               SCROLL_BOTTOM_EDGE,
+               SCROLL_LEFT_EDGE,
+               SCROLL_RIGHT_EDGE,
+               SCROLL_ANYWHERE
+       }
+
+       /*
+          Specifies whether the coordinates are relative to the screen, to the
+          window, or to the parent object.
+        */
+       enum uint32 CoordType {
+               COORD_TYPE_SCREEN = 0,
+               COORD_TYPE_WINDOW,
+               COORD_TYPE_PARENT
+       }
+
        /*
          True if the specified point lies within the components bounding box.
          */ 
@@ -136,4 +159,20 @@ interface org.freestandards.atspi.Component {
        method GetAlpha reply {
                double alpha;
        }
+
+       /*
+         Scroll this object so it becomes visible on the screen.
+        */
+       method ScrollTo {
+               ScrollType type;
+       }
+
+       /*
+         Scroll this object so it becomes visible on the screen at a given position.
+        */
+       method ScrollToPoint {
+               CoordType type;
+               int32 x;
+               int32 y;
+       }
 }
index 53b5f71..4519a0a 100644 (file)
@@ -6,7 +6,9 @@ interface org.freestandards.atspi.DeviceEventController {
                KEY_RELEASE,
                KEY_PRESSRELEASE,
                KEY_SYM,
-               KEY_STRING
+               KEY_STRING,
+               KEY_LOCKMODIFIERS,
+               KEY_UNLOCKMODIFIERS
        }
 
         /*
index 0cfdbef..351b207 100644 (file)
@@ -1,5 +1,5 @@
 project('at-spi2-core', 'c',
-        version: '2.26.1',
+        version: '2.31.1',
         license: 'LGPLv2.1+',
         default_options: [
           'buildtype=debugoptimized',
@@ -8,7 +8,7 @@ project('at-spi2-core', 'c',
         ],
         meson_version: '>= 0.40.1')
 
-add_project_arguments([ '-D_POSIX_C_SOURCE', '-D_DEFAULT_SOURCE' ], language: 'c')
+add_project_arguments([ '-D_POSIX_C_SOURCE=200809L', '-D_DEFAULT_SOURCE' ], language: 'c')
 
 atspi_gir_ns = 'Atspi'
 
@@ -109,20 +109,6 @@ xgettext = find_program('xgettext', required : false)
 
 configure_file(output: 'config.h', configuration: at_spi_conf)
 
-# Compat variables for pkgconfig
-pkgconf = configuration_data()
-pkgconf.set('prefix', get_option('prefix'))
-pkgconf.set('exec_prefix', get_option('prefix'))
-pkgconf.set('libdir', atspi_libdir)
-pkgconf.set('includedir', atspi_includedir)
-pkgconf.set('VERSION', meson.project_version())
-
-configure_file(input: 'atspi-2.pc.in',
-               output: 'atspi-2.pc',
-               configuration: pkgconf,
-               install: true,
-               install_dir: join_paths(get_option('libdir'), 'pkgconfig'))
-
 gnome = import('gnome')
 
 subdir('dbind')
index c9afe2f..f8ec862 100644 (file)
@@ -6,6 +6,15 @@ option('dbus_daemon',
        description: 'The path of the DBus daemon',
        type: 'string',
        value: 'default')
+option('dbus_broker',
+       description: 'The path of the DBus broker',
+       type: 'string',
+       value: 'default')
+option('default_bus',
+       description: 'The default DBus implementation to use',
+       type: 'combo',
+       choices: ['dbus-daemon', 'dbus-broker'],
+       value: 'dbus-daemon')
 option('systemd_user_dir',
        description: 'Location of the systemd user services',
        type: 'string',
diff --git a/po/Makevars b/po/Makevars
deleted file mode 100644 (file)
index b40107f..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-# Makefile variables for PO directory in any package using GNU gettext.
-
-# Usually the message domain is the same as the package name.
-DOMAIN = $(PACKAGE)
-
-# These two variables depend on the location of this directory.
-subdir = po
-top_builddir = ..
-
-# These options get passed to xgettext.
-XGETTEXT_OPTIONS = --from-code=UTF-8 --keyword=_ --keyword=N_ --keyword=C_:1c,2 --keyword=NC_:1c,2 --keyword=g_dngettext:2,3 --add-comments
-
-# This is the copyright holder that gets inserted into the header of the
-# $(DOMAIN).pot file.  Set this to the copyright holder of the surrounding
-# package.  (Note that the msgstr strings, extracted from the package's
-# sources, belong to the copyright holder of the package.)  Translators are
-# expected to transfer the copyright for their translations to this person
-# or entity, or to disclaim their copyright.  The empty string stands for
-# the public domain; in this case the translators are expected to disclaim
-# their copyright.
-COPYRIGHT_HOLDER = at-spi2-core authors
-
-# This tells whether or not to prepend "GNU " prefix to the package
-# name that gets inserted into the header of the $(DOMAIN).pot file.
-# Possible values are "yes", "no", or empty.  If it is empty, try to
-# detect it automatically by scanning the files in $(top_srcdir) for
-# "GNU packagename" string.
-PACKAGE_GNU = no
-
-# This is the email address or URL to which the translators shall report
-# bugs in the untranslated strings:
-# - Strings which are not entire sentences, see the maintainer guidelines
-#   in the GNU gettext documentation, section 'Preparing Strings'.
-# - Strings which use unclear terms or require additional context to be
-#   understood.
-# - Strings which make invalid assumptions about notation of date, time or
-#   money.
-# - Pluralisation problems.
-# - Incorrect English spelling.
-# - Incorrect formatting.
-# It can be your email address, or a mailing list address where translators
-# can write to without being subscribed, or the URL of a web page through
-# which the translators can contact you.
-MSGID_BUGS_ADDRESS = https://bugzilla.gnome.org/enter_bug.cgi?product=at-spi&keywords=I18N+L10N&component=at-spi2-core
-
-# This is the list of locale categories, beyond LC_MESSAGES, for which the
-# message catalogs shall be used.  It is usually empty.
-EXTRA_LOCALE_CATEGORIES =
-
-# This tells whether the $(DOMAIN).pot file contains messages with an 'msgctxt'
-# context.  Possible values are "yes" and "no".  Set this to yes if the
-# package uses functions taking also a message context, like pgettext(), or
-# if in $(XGETTEXT_OPTIONS) you define keywords with a context argument.
-USE_MSGCTXT = no
-
-# These options get passed to msgmerge.
-# Useful options are in particular:
-#   --previous            to keep previous msgids of translated messages,
-#   --quiet               to reduce the verbosity.
-MSGMERGE_OPTIONS =
-
-# These options get passed to msginit.
-# If you want to disable line wrapping when writing PO files, add
-# --no-wrap to MSGMERGE_OPTIONS, XGETTEXT_OPTIONS, and
-# MSGINIT_OPTIONS.
-MSGINIT_OPTIONS =
-
-# This tells whether or not to regenerate a PO file when $(DOMAIN).pot
-# has changed.  Possible values are "yes" and "no".  Set this to no if
-# the POT file is checked in the repository and the version control
-# program ignores timestamps.
-PO_DEPENDS_ON_POT = no
-
-# This tells whether or not to forcibly update $(DOMAIN).pot and
-# regenerate PO files on "make dist".  Possible values are "yes" and
-# "no".  Set this to no if the POT file and PO files are maintained
-# externally.
-DIST_DEPENDS_ON_UPDATE_PO = no
index 6e1ba90..f0eb565 100644 (file)
--- a/po/fr.po
+++ b/po/fr.po
@@ -2,27 +2,27 @@
 # Copyright (C) 2011 Listed translators
 # This file is distributed under the same license as the at-spi2-core package.
 # Claude Paroz <claude@2xlibre.net>, 2011.
+# Charles Monzat <charles.monzat@numericable.fr>, 2018.
 #
 msgid ""
 msgstr ""
 "Project-Id-Version: at-spi2-core master\n"
-"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=at-"
-"spi&keywords=I18N+L10N&component=general\n"
-"POT-Creation-Date: 2014-02-03 23:50+0000\n"
-"PO-Revision-Date: 2014-03-11 22:53+0100\n"
-"Last-Translator: Claude Paroz <claude@2xlibre.net>\n"
-"Language-Team: GNOME French Team <gnomefr@traduc.org>\n"
+"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/at-spi2-core/issues\n"
+"POT-Creation-Date: 2018-10-05 04:46+0000\n"
+"PO-Revision-Date: 2018-11-14 18:35+0100\n"
+"Last-Translator: Charles Monzat <charles.monzat@numericable.fr>\n"
+"Language-Team: français <gnomefr@traduc.org>\n"
 "Language: fr\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"X-Generator: Gtranslator 3.30.0\n"
 
-#: ../atspi/atspi-component.c:325 ../atspi/atspi-misc.c:1034
-#: ../atspi/atspi-value.c:111
+#: atspi/atspi-component.c:326 atspi/atspi-misc.c:1073 atspi/atspi-value.c:111
 msgid "The application no longer exists"
-msgstr "L'application n'existe plus"
+msgstr "L’application n’existe plus"
 
-#: ../atspi/atspi-misc.c:1777
+#: atspi/atspi-misc.c:1850
 msgid "Attempted synchronous call where prohibited"
-msgstr "La tentative d'appel synchrone est interdite"
+msgstr "La tentative dappel synchrone est interdite"
diff --git a/registryd/Makefile.am b/registryd/Makefile.am
deleted file mode 100644 (file)
index 6a4b1d8..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-EXTRA_DIST = \
-       meson.build
-
-libexec_PROGRAMS = at-spi2-registryd
-
-at_spi2_registryd_CFLAGS =     \
-       $(GLIB_CFLAGS)          \
-       $(GIO_CFLAGS)           \
-       $(DBUS_CFLAGS)          \
-       $(GOBJ_CFLAGS)          \
-       $(ATK_CFLAGS)           \
-       $(X11_CFLAGS)           \
-       -I$(top_srcdir)         \
-       -I$(top_builddir)       \
-       -I$(top_builddir)/atspi \
-       -DATSPI_INTROSPECTION_PATH=\"$(pkgdatadir)/$(DEFAULT_ATSPI_INTROSPECTION_PATH)\"
-
-at_spi2_registryd_LDADD =      \
-       ../atspi/libatspi.la \
-       $(GLIB_LIBS)            \
-       $(GIO_LIBS)             \
-       $(DBUS_LIBS)    \
-       $(GOBJ_CFLAGS)          \
-       $(ATK_LIBS)             \
-       $(X11_LIBS)             \
-       $(DL_LIBS)
-
-at_spi2_registryd_SOURCES =    \
-       de-marshaller.h         \
-       de-marshaller.c         \
-       de-types.h              \
-       keymasks.h              \
-       paths.h                 \
-       registry-main.c         \
-       registry.c              \
-       registry.h              \
-       introspection.h         \
-       introspection.c         \
-       deviceeventcontroller.c \
-       deviceeventcontroller.h \
-       reentrant-list.c        \
-       reentrant-list.h
-
-X11_SOURCES = \
-       deviceeventcontroller-x11.c \
-       display.h \
-       display.c \
-       event-source.c \
-       event-source.h \
-       ucs2keysym.c
-
-if USE_X11
-at_spi2_registryd_SOURCES += $(X11_SOURCES)
-else
-EXTRA_DIST += $(X11_SOURCES)
-endif
-
-servicedir=$(datadir)/dbus-1/accessibility-services
-service_in_files = org.a11y.atspi.Registry.service.in
-service_DATA     = $(service_in_files:.service.in=.service)
-
-$(service_DATA): $(service_in_files) Makefile
-       $(AM_V_GEN)$(SED) -e "s|[@]libexecdir[@]|$(libexecdir)|" $(srcdir)/$@.in > $@
-
-DISTCLEANFILES = org.a11y.atspi.Registry.service
-EXTRA_DIST += org.a11y.atspi.Registry.service.in
-
--include $(top_srcdir)/git.mk
index a338e38..f08823c 100644 (file)
@@ -47,6 +47,8 @@ typedef enum {
     Accessibility_KEY_PRESSRELEASE,
     Accessibility_KEY_SYM,
     Accessibility_KEY_STRING,
+    Accessibility_KEY_LOCKMODIFIERS,
+    Accessibility_KEY_UNLOCKMODIFIERS,
 } Accessibility_KeySynthType;
 
 typedef struct _Accessibility_DeviceEvent Accessibility_DeviceEvent;
index d9d9a6c..e5b8dfc 100644 (file)
@@ -1018,8 +1018,10 @@ spi_dec_x11_synth_keycode_press (SpiDEController *controller,
 {
        unsigned int time = CurrentTime;
        unsigned int bounce_delay;
+#ifdef THIS_IS_BROKEN 
        unsigned int elapsed_msec;
        struct timeval tv;
+#endif
        DEControllerPrivateData *priv = controller->priv;
 
        spi_x_error_trap ();
@@ -1028,15 +1030,15 @@ spi_dec_x11_synth_keycode_press (SpiDEController *controller,
                bounce_delay = xkb_get_bouncekeys_delay (controller); 
                 if (bounce_delay)
                {
+#ifdef THIS_IS_BROKEN
                        gettimeofday (&tv, NULL);
                        elapsed_msec =
                                (tv.tv_sec - priv->last_release_time.tv_sec) * 1000
                                + (tv.tv_usec - priv->last_release_time.tv_usec) / 1000;
-#ifdef SPI_XKB_DEBUG                   
+# ifdef SPI_XKB_DEBUG
                        fprintf (stderr, "%d ms elapsed (%ld usec)\n", elapsed_msec,
                                 (long) (tv.tv_usec - priv->last_release_time.tv_usec));
-#endif
-#ifdef THIS_IS_BROKEN
+# endif
                        if (elapsed_msec < bounce_delay)
                                time = bounce_delay - elapsed_msec + 1;
 #else
@@ -1062,8 +1064,10 @@ spi_dec_x11_synth_keycode_release (SpiDEController *controller,
 {
        unsigned int time = CurrentTime;
        unsigned int slow_delay;
+#ifdef THIS_IS_BROKEN_DUNNO_WHY
        unsigned int elapsed_msec;
        struct timeval tv;
+#endif
        DEControllerPrivateData *priv = controller->priv;
 
        spi_x_error_trap ();
@@ -1072,15 +1076,15 @@ spi_dec_x11_synth_keycode_release (SpiDEController *controller,
                slow_delay = xkb_get_slowkeys_delay (controller);
                if (slow_delay)
                {
+#ifdef THIS_IS_BROKEN_DUNNO_WHY
                        gettimeofday (&tv, NULL);
                        elapsed_msec =
                                (tv.tv_sec - priv->last_press_time.tv_sec) * 1000
                                + (tv.tv_usec - priv->last_press_time.tv_usec) / 1000;
-#ifdef SPI_XKB_DEBUG                   
+# ifdef SPI_XKB_DEBUG
                        fprintf (stderr, "%d ms elapsed (%ld usec)\n", elapsed_msec,
                                 (long) (tv.tv_usec - priv->last_press_time.tv_usec));
-#endif
-#ifdef THIS_IS_BROKEN_DUNNO_WHY
+# endif
                        if (elapsed_msec < slow_delay)
                                time = slow_delay - elapsed_msec + 1;
 #else
index 0c965ef..4e25ad6 100644 (file)
@@ -1762,6 +1762,12 @@ impl_generate_keyboard_event (DBusConnection *bus, DBusMessage *message, void *u
                      fprintf (stderr, "Keystring synthesis failure, string=%s\n",
                               keystring);
              break;
+      case Accessibility_KEY_LOCKMODIFIERS:
+             spi_dec_plat_lock_modifiers (controller, keycode);
+             break;
+      case Accessibility_KEY_UNLOCKMODIFIERS:
+             spi_dec_plat_unlock_modifiers (controller, keycode);
+             break;
     }
   reply = dbus_message_new_method_return (message);
   return reply;
index 29bdfca..7f9a716 100644 (file)
@@ -45,7 +45,7 @@ spi_re_entrant_list_delete_link (GList * const *element_ptr)
   GList     *next;
   GList     *element;
   gboolean   first_item;
-  GList *dummy; /* suppress warning */
+  GList *dummy G_GNUC_UNUSED;
 
   g_return_if_fail (element_ptr != NULL);
 
diff --git a/test/Makefile.am b/test/Makefile.am
deleted file mode 100644 (file)
index b76db0a..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-LDADD = $(top_builddir)/atspi/libatspi.la
-noinst_PROGRAMS = memory
-memory_SOURCES = memory.c
-memory_CPPFLAGS = -I$(top_srcdir) -I$(top_builddir) -I$(top_builddir)/atspi
-memory_CFLAGS = $(GLIB_CFLAGS)         $(GOBJ_LIBS) $(DBUS_CFLAGS)
-memory_LDFLAGS = 
-
--include $(top_srcdir)/git.mk
-
-EXTRA_DIST = meson.build
index c67dde9..c1258d2 100644 (file)
     <arg direction="out" type="b"/>
   </method>
 
+  <method name="ScrollTo">
+    <arg direction="in" name="type" type="u"/>
+  </method>
+
+  <method name="ScrollToPoint">
+    <arg direction="in" name="type" type="u"/>
+    <arg direction="in" name="x" type="i"/>
+    <arg direction="in" name="y" type="i"/>
+  </method>
+
 </interface>
 </node>
diff --git a/xml/Makefile.am b/xml/Makefile.am
deleted file mode 100644 (file)
index edb71d3..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-EXTRA_DIST = \
-       Accessibility.xml \
-       Accessible.xml \
-       Action.xml \
-       Application.xml \
-       Cache.xml \
-       Collection.xml \
-       Component.xml \
-       create-introspection.sh \
-       DeviceEventController.xml \
-       DeviceEventListener.xml \
-       Document.xml \
-       EditableText.xml \
-       Event.xml \
-       Hyperlink.xml \
-       Hypertext.xml \
-       Image.xml \
-       Registry.xml \
-       remove-annotations.xsl \
-       Selection.xml \
-       Socket.xml \
-       Table.xml \
-       Text.xml \
-       Value.xml \
-       versioned-introspection.py
-
-CLEANFILES = \
-       introspection.c \
-       introspection.h \
-       Processed.xml
-
-#BUILT_SOURCES = spec.xml
-#CLEANFILES += spec.xml
-
-XML_SPEC = $(filter %.xml,$(EXTRA_DIST))
-
-spec.xml: $(XML_SPEC)
-       xsltproc --xinclude $(top_srcdir)/tools/identity.xsl Accessibility.xml >spec.xml
-
-
--include $(top_srcdir)/git.mk