- 03 Feb, 2023 8 commits
-
-
Emmanuele Bassi authored
-
The `get_child_at_index()` API model comes from AT-SPI, and it's not an efficient design, especially when coupled with large widgets. Replace `get_child_at_index()` with `get_first_accessible_child()` and `get_next_accessible_sibling()`. That allows efficiently retrieving all the children, simplifies the implementation of GtkAccessible in GtkWidget and closely resembeles the GtkWidget API. Getting the last child and previous sibling for iterating backwards is not a part of the interface at the moment, but they can be added at a later date. Note that this change required tracking the next stack page in GtkStackPage.
-
Avoid a collision when the type implementing the GtkAccessible interface already has a `get_parent()` method—like GtkWidget.
-
Documentation and coding style updates.
-
-
Make the bounds calculation part of the accessible interface. Bounds are used by ATs like Orca to implement features like Flat Review: https://help.gnome.org/users/orca/stable/howto_flat_review.html.en Or to determine the area of a non-presentational widget.
-
Don't get confused with non-presentable objects when iterating the list of children.
-
Remove the widget tree dependence from GtkAtSpiContext.
-
- 29 Nov, 2022 2 commits
-
-
Corey Berla authored
-
Corey Berla authored
We are caching the bus address as data on the display object when it exists, but fail to set the data when the bus address doesn't exist. That causing excessive calls to GetAddress when the accesssbility bus doesn't exist. Make sure to cache a non-existent accessibility bus by setting the "" string.
-
- 27 Nov, 2022 1 commit
-
-
Corey Berla authored
GTK depends on the a11y infrastructure to be in place unless GTK_A11Y is set to none. It appears that despite that, users attempt to get around the a11y requirement without setting GTK_A11Y. This can cause, amongst other issues, performance problems with gtk applications. Log failure to connect to the a11y bus.
-
- 23 Sep, 2022 1 commit
-
-
Matthias Clasen authored
-
- 09 Sep, 2022 1 commit
-
-
Matthias Clasen authored
For some of the a11y states, calling gtk_accessible_reset_state can change the type of the state value from boolean or tristate to undefined. Handle that, instead of throwing criticals. Related: !4910
-
- 25 May, 2022 1 commit
-
-
Sebastian Keller authored
If a context is not realized, calling gtk_at_spi_context_to_ref() will return a null ref, because its path has not been initialized yet. This was already done for all other cases in get_parent_context_ref(), but was missing for the GtkStackPage case. Fixes: #4944
-
- 19 Apr, 2022 1 commit
-
-
Emmanuele Bassi authored
The root accessible object is registered asynchronously, as it needs to call a method on the AT-SPI registry daemon. This means we need to defer registering the GtkAtSpiContext on the accessibility bus and in the cache until after the registration is complete. Fixes: #4825
-
- 14 Dec, 2021 1 commit
-
-
- 20 Nov, 2021 1 commit
-
-
Samuel Thibault authored
This reverts commit 22847563.
-
- 19 Nov, 2021 1 commit
-
-
Christian Hergert authored
-
- 29 Sep, 2021 1 commit
-
-
Matthias Clasen authored
We don't really need a bus-address property that gets copied for every single object. We keep the address in object data on the display anyway. Just use it from there. This gets rid of a nice amount of strdups at startup.
-
- 22 May, 2021 1 commit
-
-
Matthias Clasen authored
Replace leftover gtk-doc syntax (#Type) with backquotes.
-
- 21 Apr, 2021 1 commit
-
-
Emmanuele Bassi authored
Orca needs both events in order to decide whether or not to subscribe to other event/state changes in a window.
-
- 20 Apr, 2021 2 commits
-
-
Emmanuele Bassi authored
Orca uses the window:activate event type to track top levels, and avoid being spammed by events coming from non-focused windows.
-
Matthias Clasen authored
Orca relies on these to keep track of the focus location, ignoring the focused state. With this change, orca can once again speak text in entries as I type.
-
- 19 Apr, 2021 2 commits
-
-
Orca ignores events unless the object is inside an object with role window and states ACTIVE and SHOWING. To arrange for this, introduce a new ACTIVE platform state, and set it for windows when they are active. This gets orca to be a lot more talkative.
-
We don't make any use of the cache field, so drop it.
-
- 17 Apr, 2021 1 commit
-
-
Matthias Clasen authored
This is in an attempt to figure out why orca won't speak.
-
- 13 Apr, 2021 1 commit
-
-
Matthias Clasen authored
These happen for variables which are only used in assertions, when assertions are disabled.
-
- 05 Dec, 2020 1 commit
-
-
Emmanuele Bassi authored
Fixes: #3450
-
- 23 Nov, 2020 2 commits
-
-
Emmanuele Bassi authored
Just check for it once; doing it every time we failed to create an ATContext is just going to fill up the logs.
-
Emmanuele Bassi authored
The accessibility bus might not be available, and if it isn't the case, it means something has failed at a level where the user can't do much about it. There's no need to emit a critical warning.
-
- 16 Nov, 2020 3 commits
-
-
Emmanuele Bassi authored
The AT-SPI cache interface is used to quickly populate the accessible objects tree. The tricky bit is ensuring that we emit change notifications on the cache only when the cache is available, which means waiting until the root is asynchronously registered.
-
Emmanuele Bassi authored
We are going to use them in order to implement atspi.Cache.
-
Emmanuele Bassi authored
The root path is shared by all AtSpiContext instances, so we should compute it once, instead of every time we instantiate a new context. This allows us to defer the path creation at realization time and ensure that we have a registered application.
-
- 11 Nov, 2020 2 commits
-
-
Emmanuele Bassi authored
There's no need to do a lot of work on construction, if we're delaying all remote work after the GtkATContext is realized. The GtkAtSpiContext should also keep a reference on the root, and drop it at unrealize time.
-
Emmanuele Bassi authored
Just like for popovers, the stack page is not directly connected on the widget's DOM, so we need to realize the parent ATContext ourselves.
-
- 09 Nov, 2020 1 commit
-
-
Matthias Clasen authored
Things that are set up in register_object should be cleaned up in unregister_object.
-
- 04 Nov, 2020 2 commits
-
-
Emmanuele Bassi authored
Keeps the body of handle_accessible_get_property() readable.
-
Emmanuele Bassi authored
We are doing too much work during the construction phase of the AT-SPI backend for GtkATContext. Instead of having the AtSpiContext register itself at construction time, let's add explicit realize and unrealize operations, and connect the ATContext realization to the rooting operation of a GtkWidget.
-
- 25 Oct, 2020 1 commit
-
-
Matthias Clasen authored
Make state_change handle state changes for non-widgets, and handle the cases for HIDDEN involving stack pages.
-
- 24 Oct, 2020 1 commit
-
-
Matthias Clasen authored
Instead of monitoring the list of toplevels, rely on GtkWindow updating the HIDDEN state before windows get removed. This is better, since we still have the object available when it happens, so we can pass it to the ATs.
-