Releases: madewokherd/xalia
xalia-0.4.6
Changes since 0.4.5:
- Added a new "supported only" mode. If the
XALIA_SUPPORTED_ONLY
environment variable is set to a value other than "0", Xalia will only activate for windows that are considered "supported". These are windows that use only controls and toolkits that are expected to work, or from applications that have been specifically tested. - GUDL: Added a "wait" action, meant for executing other actions with a delay. Usage:
wait(number_of_seconds)
- Updated SDL to 2.30.11.
- GUDL: Added support for reading environment variables. Usage:
environ.NAME_OF_VARIABLE
- Interaction with the "Input" tab of Unity3D launchers on Windows has been disabled. For many games, the "Input" tab is simply broken, ineffective, or responds to gamepad input in a way that breaks Xalia (specifically, it listens for gamepad input at all times, and binds the most recent input when activated).
- GUDL: Added the
is_hwnd_dialog
property for consistency with other provider properties. - Win32: Added support for SysLink controls.
- Win32: Fixed a bug where controls with MSAA providers would be accessed via UIAutomation.
- Win32: Fixed handling of VT_EMPTY returns from get_accChild.
- Buttons with the "owner draw" flag are now only targetable if they have no child controls. Sometimes these "owner draw" buttons are used as frame controls (which for some reason on Win32 are buttons), and there's no reliable way to tell, but this should work in most cases.
- Fixed RPG Maker games having a targetable control detected in the upper-left corner.
- Marked "Trine" and "Trine 2" launchers as having built-in gamepad support.
- Win32: When MSAA controls return the "client" role, this will now be reported only in the
msaa_role
property, while therole
andcontrol_type
generic aliases will fall back to other sources.
xalia-0.4.5
Changes since 0.4.4:
- Disabled the fallback mapping of right stick to scroll wheel.
- Added a work-around for Delphi applications sometimes focusing an invisible "application" window.
- Fixed use of ReadProcessMemory on Wine.
- Updated SDL to 2.30.8.
- Made scrolling with right stick continue when the targeted control is scrolled out of view.
- Fixed a possible stack overflow on Linux.
- Various improvements to Win32 listview support. In particular, individual cells and column headers can now be targeted in details view.
- Fixed a crash when used on some non-English locales (#48).
- Updated to .NET 9.
- Added support for modifying input bindings in Unity3D launchers.
xalia-0.4.4
Changes since 0.4.3:
- Added an accessibility tree viewer, which can be activated with the
XALIA_DEBUG_TREEVIEW
environment variable. - GUDL: Added the ability to create "enum" objects.
- GUDL: Added a
hex()
function which formats integers as hex. - Added a special case to make navigation between scrollbars and content more logical. For example, moving "up" from a vertical scrollbar to content, or "down" from content to the scrollbar is no longer possible.
- Win32: Fixed a regression where quantized updates of hwnd trackbars weren't happening.
- Updated Tmds.DBus.Protocol to 0.20.0
xalia-0.4.3
Changes since 0.4.2:
- The builds are now done by CI.
- Lots of minor bug fixes, app-specific workarounds, and new features usable in GUDL.
- The directional navigation algorithm has been completely rewritten. Horizontal movement is now "strict", meaning an element must be directly to the left or right to be considered. Vertical movement is "loose", meaning there is no requirement that an element be directly above or below to be considered.
- Dependencies
- Updated Tmds.DBus.Protocol to 0.19.0.
- Updated SDL to 2.30.5.
xalia-0.4.2
Windows:
- MSAA code now runs in a dedicated background thread for each remote Win32 thread. This fixes MSAA support in Proton.
- Elements that have both an MSAA implementation and a known Win32 class will use both.
- UI Automation support has been started.
- Fixed send_click for various element types.
- Added a work-around for the buttons in Atelier Ryza launcher.
- The special cases for the original (non-special edition) Skyrim launcher have been generalized so that they work with similar Bethesda launchers, including Skyrim Special Edition and Fallout 3.
- When a listview control has checkboxes, the "primary action" for listview items is to toggle the checkbox, while the "secondary action" is a single click.
- Added a work-around for a bug in the Fallout launchers on Windows, where the active window after a dialog closes is the dialog that just closed (which is in reality only hidden). I don't understand how a hidden window can be the active window, but it's now possible to interact with controls on the main window when this happens.
Linux:
- An
spi_toggle_selected
action has been added which toggles the selected state of an element. This is not used by default because it did not work as well as I'd hoped. - Fixed a crash in
WatchProperty
whenspi_supported
is first checked.
All platforms:
- The targeting box will no longer display when no inputs are bound to it. In practice, this means it will only display when a gamepad is plugged in.
- The debug output for GUDL expressions has been fixed for certain expressions, and there are fewer unnecessary parentheses (for example,
a + b + c
is no longer printed as((a + b) + c)
.
xalia-0.4.1
Added support for win32 listview controls and various tweaks for the Skyrim launcher.
xalia-0.4.0
This release replaces both the Linux and Windows backends.
The new Linux backend is based on Tmds.DBus.Protocol, a lower level library. It has feature-parity with the older Tmds.DBus backend, while losing some limitations and work-arounds that Tmds.DBus made necessary.
The new Windows backend is based primarily on the Win32 API and MSAA, unlike the old backend which was based on UI Automation. This one isn't nearly as featured as the backend it's replacing. Unfortunately, Windows accessibility is a mess of different technologies with various bits of glue holding them together. I was hoping that UI Automation would provide a good interface to all of this, but it turns out that none of the proxies are adequate (either MSAA-to-UIA or Win32-to-MSAA). And so, the best long-term solution appears to be to interact directly with whatever the application provides (Win32 messaging, MSAA, or UI Automation), rather than depend on UI Automation for everything as before.
There's a pretty good chance that for Win32 we'll eventually want some proxy that hooks other processes, in order to switch it to a push model (like what browsers are doing), but I'm resisting this as long as I can because I want to encourage more people to use accessibility APIs, and that sort of example is not encouraging.
xalia-0.3.2
This adds a layered window based implementation for the overlay box on Windows. The default implementation is now the layered window on Windows, and 4 rectangular windows on other platforms.
xalia-0.3.1
This adds an option that configures Xalia as a Wine system process. There is no currently-released version of Wine where Xalia can actually run, so it's not immediately useful. The feature is to support some potential integration with a future Proton release.
xalia-0.3
Far too many changes to name in this one. That's what happens when you keep working and don't release for 6 months, I guess.