Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 33 additions & 4 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,10 @@
# Include the parameters we need from Freedesktop CI Templates
include:
- local: 'ci/container_builds.yml'
- component: gitlab.gnome.org/GNOME/citemplates/release-service@master
inputs:
dist-job-name: "opensuse-distcheck"
tarball-artifact-path: "_build/meson-dist/$CI_PROJECT_NAME-$CI_COMMIT_TAG.tar.xz"

# Stages in the CI pipeline in which jobs will be run
stages:
Expand All @@ -18,6 +22,7 @@ stages:
- analysis
- docs
- deploy
- release

# Enable merge request pipelines and avoid duplicate pipelines
# https://docs.gitlab.com/ee/ci/yaml/index.html#switch-between-branch-pipelines-and-merge-request-pipelines
Expand Down Expand Up @@ -51,8 +56,8 @@ opensuse-x86_64:
variables:
MESON_EXTRA_FLAGS: "--buildtype=debug" # -Dwerror=true
script:
# See https://gitlab.gnome.org/GNOME/at-spi2-core/-/merge_requests/137 for the reason for disable_p2p
- meson setup ${MESON_EXTRA_FLAGS} -Ddisable_p2p=true --prefix /usr _build .
- source ci/env.sh
- meson setup ${MESON_EXTRA_FLAGS} --prefix /usr _build .
- meson compile -C _build
- meson install -C _build
- mkdir /tmp/test+dir+with+funny+chars
Expand Down Expand Up @@ -90,6 +95,29 @@ fedora-x86_64:
paths:
- "_build/meson-logs"

opensuse-distcheck:
stage: build
extends:
- '.container.opensuse@x86_64'
- '.fdo.distribution-image@opensuse'
needs: ['opensuse-container@x86_64']
variables:
MESON_EXTRA_FLAGS: "--buildtype=debug" # -Dwerror=true
script:
- source ci/env.sh
- git config --global --add safe.directory $CI_PROJECT_DIR
- meson setup ${MESON_EXTRA_FLAGS} --prefix /usr _build .
- meson compile -C _build
- meson install -C _build
- mkdir /tmp/test+dir+with+funny+chars
- export XDG_RUNTIME_DIR=/tmp/test+dir+with+funny+chars # See https://gitlab.gnome.org/GNOME/at-spi2-core/-/issues/48
- xvfb-run --auto-servernum dbus-run-session -- ci/run-registryd-tests.sh
- xvfb-run --auto-servernum dbus-run-session -- ci/run-tests.sh
- meson dist -C _build --no-tests
artifacts:
paths:
- "_build/meson-dist/*.xz"

# Run static analysis on the code.
#
# The logs are part of the compilation stderr.
Expand Down Expand Up @@ -125,6 +153,7 @@ asan-build:
# https://gitlab.freedesktop.org/dbus/dbus/-/issues/326
LSAN_OPTIONS: "suppressions=${CI_PROJECT_DIR}/ci/address-sanitizer.supp"
script:
- source ci/env.sh
- CC=clang meson setup ${MESON_EXTRA_FLAGS} --prefix /usr _build .
- meson compile -C _build
- meson install -C _build
Expand All @@ -150,8 +179,7 @@ coverage:
CFLAGS: "-coverage -ftest-coverage -fprofile-arcs"
script:
- source ./ci/env.sh
# See https://gitlab.gnome.org/GNOME/at-spi2-core/-/merge_requests/137 for the reason for disable_p2p
- meson setup ${MESON_EXTRA_FLAGS} -Ddisable_p2p=true --prefix /usr _build .
- meson setup ${MESON_EXTRA_FLAGS} --prefix /usr _build .
- meson compile -C _build
- meson install -C _build
- xvfb-run --auto-servernum dbus-run-session -- ci/run-registryd-tests.sh
Expand Down Expand Up @@ -185,6 +213,7 @@ reference:
variables:
MESON_EXTRA_FLAGS: "--buildtype=release -Ddocs=true"
script:
- source ci/env.sh
- meson setup ${MESON_EXTRA_FLAGS} --prefix /usr _build .
- ninja -C _build doc/atk doc/libatspi devel-docs/html
- mkdir _reference
Expand Down
204 changes: 204 additions & 0 deletions NEWS
Original file line number Diff line number Diff line change
@@ -1,3 +1,207 @@
What's new in at-spi2-core 2.59.1:

* Added a build option to link against dbus-glib, rather than using the
internal fork for the main loop integration code.

* Add ATSPI_MODIFIER_SUPER as an alias for META3.

* Various documentation fixes.

What's new in at-spi2-core 2.59.0:

meson: Use dbus-broker by default.

Document the remaining DBus interfaces.

What's new in at-spi2-core 2.58.3:

* Fix atk_get_major_version etc not linking on C++.

What's new in at-spi2-core 2.58.2:

* python: Speed up __eq__ and __ne__

* collection-adaptor: Correct 'child' reference handling (fixes crashes
with evolution and orca).

* Fix several memory leaks.

What's new in at-spi2-core 2.58.1:

* at-spi-bus-launcher: Fix a possible crash when registering.

* python: Avoid traceback when hashing a disposed object

* Fix build failure on MacOS.

* Fix transfer rule for atk_table_cell_get_table and atk_table_get_summary.

What's new in at-spi2-core 2.58.0:

* libatspi: Increase ATSPI_ROLE_COUNT after switch role was added

* Add ATSPI_CHECK_VERSION macro.

* Properly fix key notifications under X11 when multiple keyboard layouts
are in use.

What's new in at-spi2-core 2.57.2:

* Don't install at-spi-dbus-bus.service if systemd is not enabled.

* Some collection fixes and documentation improvements.

* Fix reporting the wrong keysym on X11 setups where multiple keyboard
layouts are in use.

* Fix possible memory leak in atspi_accessible_get_description.

What's new in at-spi2-core 2.57.1:

* Fix several crashes introduced by the code to handle the accessibility
bus going away.

* Add atspi_device_clear_key_grabs.

* Fix key grabs when num lock or caps lock are on under Wayland.

atk-bridge: Don't crash when requesting a plug if not activated

* Have python overrides check DBus object paths when testing for equality.

* Add sanity checks for child indices received via DBus.

What's new in at-spi2-core 2.57.0:

* device-a11y-manager: Fix crash on dispose

* device-a11y-manager: Check properly for the DBus backend presence

* Fix the build with glib < 2.76.

* a11y-manager-device: Fix unmap_keysym_modifier.

* DeviceEventController: update mouse coordinates before sending button events

* atspi-device-legacy: Don't crash when XkbGetMap fails

* Return localized role name for ATSPI_ROLE_EDITBAR

atk-adaptor: Reconnect when the bus launcher reappears.

* Don't keep references to uncached objects in the application's hash table.

* Add some Python overrides.

AtspiDeviceX11: Suppress window events following key grabs when needed.

What's new in at-spi2-core 2.56.0:

* Updated translations.

What's new in at-spi2-core 2.55.90:

* Support grabbing keyboard shortcuts through the new
org.freedesktop.a11y.KeyboardMonitor interface. This allows key grabs to
be supported under Wayland with the latest mutter.

What's new in at-spi2-core 2.55.2:

* Attempt to fix a use after free in the atk bridge.

* Add a switch role.

What's new in at-spi2-core 2.55.0.1:

* Fix regression in 2.55.0 where ungrabbing keys did not work reliably.

What's new in at-spi2-core 2.55.0:

* Fix various memory leaks.

* Fix the build on FreeBSD.

* Improve warnings when setting a property.

* Use the appropriate annotations for callbacks.

* device: Support adding grabs given a keysym.

What's new in at-spi2-core 2.53.90:

* Make ATSPI_ROLE_PUSH_BUTTON an enum value again.

* atk: Align button role with AT-SPI one.

* Fix warning when atspi_event_quit is called multiple times.

What's new in at-spi2-core 2.53.1:

* tests: Clean up test application on SIGABRT/SIGSEGV.

* Set (allow-none) for nullable parameters to atspi_match_rule_new.

* collection: Allow specifying specific action names in match rules.

atk-adaptor: Fix duplicated results in GetMatchesFrom.

* atk-adaptor: For collections, don't return objects with 0 actions as
supporting AtkAction.

* Rename ATSPI_ROLE_PUSH_BUTTON to ATSPI_ROLE_BUTTON.

What's new in at-spi2-core 2.53.0:

Add missing prototypes for functions to check the presence of interfaces.

* Replace disable_p2p with an ATSPI_DISABLE_P2P environment variable.

* Drop use of deprecated eaves-dropping option in dbus configuration

atk-adaptor: Limit amount of children to return for GetChildren

* Notify about HelpText attribute change.

* Fix possible double unref in add_accessible_from_iter.

What's new in at-spi2-core 2.52.0:

* tests: Fix missing declaration for getpid().

What's new in at-spi2-core 2.51.90:

* Back out code to generate mouse events on mutter. It had a couple of
unwanted side effects. Also remove dependencies on libei and xkbcommon.

* atk-adaptor: Fix collection role matching.

* Have atspi_text_get_string_at_offset fall back to calling
GetTextAtOffset if GetStringAtOffset is unimplemented.

* Don't use g_assert in the unit tests.

What's new in at-spi2-core 2.51.91:

Add an attribute-changed signal in atk, and update libatspi attribute cache.

* Add GetTextSelection and SetTextSelection to Document interface.

* Add atspi_device_generate_mouse_event, and implement for mutter.

* Have atspi_device_add_key_grab return 0 if XIGrabKeycode fails.

* xml: Add Embedded to the Socket interface

* Don't return uninitialized values if atspi_component_get_size/position fail.

What's new in at-spi2-core 2.51.0:

* atk-adaptor: Fix critical when no table cell array is returned.

* accessible: Do not rename deprecated methods to the new names.

* Add HelpText property and corresponding functions in atk and libatspi.

What's new in at-spi2-core 2.50.0:

* Fix at-spi2-atk test when running under a non-English locale.
Expand Down
9 changes: 0 additions & 9 deletions at-spi2-core.doap
Original file line number Diff line number Diff line change
Expand Up @@ -67,13 +67,4 @@ communication to allow accessibility-oriented software to operate.
</foaf:Person>
</maintainer>

<!-- Marge-bot to automatically handle merge requests with successful pipelines -->

<maintainer>
<foaf:Person>
<foaf:name>Marge Bot</foaf:name>
<gnome:userid>marge-bot</gnome:userid>
</foaf:Person>
</maintainer>

</Project>
21 changes: 17 additions & 4 deletions atk-adaptor/accessible-cache.c
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,20 @@ spi_cache_init (SpiCache *cache)
(GCallback) toplevel_added_listener, NULL);
}

static void
cache_weak_ref (gpointer data, GObject *gobj)
{
SpiCache *cache = SPI_CACHE (data);

g_hash_table_remove (cache->objects, gobj);
}

static void
spi_cache_remove_weak_ref (gpointer key, gpointer val, gpointer cache)
{
g_object_weak_unref (key, cache_weak_ref, cache);
}

static void
spi_cache_finalize (GObject *object)
{
Expand All @@ -141,6 +155,7 @@ spi_cache_finalize (GObject *object)
while (!g_queue_is_empty (cache->add_traversal))
g_object_unref (G_OBJECT (g_queue_pop_head (cache->add_traversal)));
g_queue_free (cache->add_traversal);
g_hash_table_foreach (cache->objects, spi_cache_remove_weak_ref, cache);
g_hash_table_unref (cache->objects);

g_signal_handlers_disconnect_by_func (spi_global_register,
Expand Down Expand Up @@ -169,6 +184,7 @@ remove_object (GObject *source, GObject *gobj, gpointer data)
spi_register_object_to_path (spi_global_register, gobj));
#endif
g_signal_emit (cache, cache_signals[OBJECT_REMOVED], 0, gobj);
g_object_weak_unref (G_OBJECT (gobj), cache_weak_ref, cache);
g_hash_table_remove (cache->objects, gobj);
}
else if (g_queue_remove (cache->add_traversal, gobj))
Expand All @@ -183,6 +199,7 @@ add_object (SpiCache *cache, GObject *gobj)
g_return_if_fail (G_IS_OBJECT (gobj));

g_hash_table_insert (cache->objects, gobj, NULL);
g_object_weak_ref (G_OBJECT (gobj), cache_weak_ref, cache);

#ifdef SPI_ATK_DEBUG
g_debug ("CACHE ADD - %s - %d - %s\n", atk_object_get_name (ATK_OBJECT (gobj)),
Expand Down Expand Up @@ -303,10 +320,6 @@ add_pending_items (gpointer data)
{
current = g_queue_pop_head (to_add);

/* Make sure object is registerd so we are notified if it goes away */
g_free (spi_register_object_to_path (spi_global_register,
G_OBJECT (current)));

add_object (cache, G_OBJECT (current));
g_object_unref (G_OBJECT (current));
}
Expand Down
4 changes: 1 addition & 3 deletions atk-adaptor/accessible-cache.h
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,7 @@
* Boston, MA 02110-1301, USA.
*/

#ifndef ACCESSIBLE_CACHE_H
#define ACCESSIBLE_CACHE_H
#pragma once

#include <glib-object.h>
#include <glib.h>
Expand Down Expand Up @@ -64,4 +63,3 @@ gboolean
spi_cache_in (SpiCache *cache, GObject *object);

G_END_DECLS
#endif /* ACCESSIBLE_CACHE_H */
Loading
Loading