Loading
Commits on Source 55
-
Joanmarie Diggs authored
-
Joanmarie Diggs authored
We had very inconsistent use of the braille end-of-line indicator. Current feedback on the list is that it makes sense to include it at the end of all editable lines as well as at the end of a line we know is code/preformatted text. There was also an indication that making things configurable would be nice. This commit is the first step of the first item: It removes the web and webkitgtk scripts' override of _generateEol and places the agreed-upon rules (end of all editable or code/pre-formatted lines) into the default's _generateEol. The second step of the first item is to go through all of formatting.py and remove the role-specific inclusion (or exclusion) of the indicator. That will be done in a subsequent commit. Making it fully configurable is on the TODO list.
-
Attila Hammer authored
-
Dominique Leuenberger authored
Most relevant when building from release tarball. The meson script already allows to not be inside a git tree by falling back to setting revision='' when git returns no revision. Let's go one step further and set revision='' also when git is not found; if this were a git clone, the system would likely have git installed.
-
Joanmarie Diggs authored
Some implementations return an offset of -1 if the caret is not in the text object. Currently we are treating that as an error condition, leaving it up to all the individual callers to correct (e.g. via `max(0, offset)`). It would be easier and simpler to do the correction in AXText.
-
Sabri Ünal authored
-
Jordi Mas authored
-
Joanmarie Diggs authored
Commit c4a7b391 handled the case where Orca is immediately quit after a new window is activated and the KeyBindings.addKeyGrabs() gets called. But it wasn't handling this scenario for the modifier grabs which is (currently) taking place in the default script. For now handle that with one additional check.
-
Yaron Shahrabani authored
-
Andi Chandler authored
-
Fran Dieguez authored
-
Andy Holmes authored
Spiel is getting it's first tagged release, so let's bump the version so it can continue to be user-tested. Those testing with Spiel should run `meson update subprojects` before `setup`, then re-build. See the README for more details.
-
Joanmarie Diggs authored
Commit 18d012de modified getFirstCaretPosition to take children into account which makes sense in some cases (e.g. containers with text children), and not in others non-editable combo boxes. We need to audit all callers of this function and see where it makes sense. Until then restore this function's original behavior. Fixes issue #465.
-
Andy Holmes authored
Some users may want to build providers from source themselves, so offer basic guidance on how to do this. Include a note indicating users may need help from their distribution for build configuration. closes #463
-
Andy Holmes authored
For a single-speaker scenario, the Spiel API intends for a single `Spiel.Speaker` to be used. Ensure we're not accidentally halting speech if an ancillary server is shutdown. closes #463
-
Andy Holmes authored
Spiel has a stable tag, so let's define it in the subproject to reduce breakages for testers.
-
Joanmarie Diggs authored
We should only restore keygrabs if the key pressed during bypass mode is not a modifier key.
-
Baurzhan Muftakhidinov authored
-
Joanmarie Diggs authored
Fixes issue #470.
-
Joanmarie Diggs authored
Treat negative width or negative height as invalid so we don't try to see if it fits in the window's bounding box. That bug should be fixed in the player or Qt. But we don't want to regress the user experience by expecting valid coordinates from objects in flat review. See issue #469.
-
Joanmarie Diggs authored
locusOfFocusChanged was unconditionally refreshing grabs if the new locusOfFocus was not in a document. We should only do this work if we were in a document before. Otherwise, things like arrowing in a browser's menu will refresh grabs every time the selected item changes.
-
Joanmarie Diggs authored
-
Joanmarie Diggs authored
If the action presenter menu is dismissed and the underlying app does not fire a window activate and/or focus event, we won't update our location and active script. This can cause things like caret navigation and structural navigation to not work. Fix this by doing the following: * Connect to the "hide" signal of the action-presenter menu * When the menu is hidden, clean up by clearing the focus manager's state, setting the active script, the active window, and focus. This should cause us to present the restored location as well as refresh keygrabs.
-
Joanmarie Diggs authored
If old focus is None, refreshing keygrabs is not unnecessary.
-
Joanmarie Diggs authored
When any script is activated, default.activate() adds key grabs without checking what should be enabled/disabled. As a result, if a web-script based app was launched, all the navigation commands were enabled by default and had to be toggled off before native navigation would work. Prior to b9a11edd, every single time focus changed, we refreshed keygrabs. That was extremely non-performant and unnecessary. However, now that we no longer do all that work, we need to ensure the initial grabs are done with knowledge of what should be enabled. * Override default.activate in the web script * Suspend (or not) navigation commands based on the locus of focus * Call default.activate so the normal activation work, including adding key grabs, can proceed.
-
Joanmarie Diggs authored
-
Joanmarie Diggs authored
That only works in pyatspi. See issue #300.
-
Joanmarie Diggs authored
* slideAndTaskPanes had no callers so remove it * drawingView was only called by slideAndTaskPanes so remove it * isDrawingView was called by the now-removed drawingView and slideTitleAndPosition. The latter's logic is outdated. While we could fix it, the only thing that was calling it is onNameChanged, and we don't seem to be seeing that event when the current slide changes. In addition to that, testing slide navigation with Orca running seems to regularly cause Impress to crash. Ultimately we should create dedicated scripts for the different features of LO, separating Writer, Calc, Impress, Math (if it's accessible), etc. into their own scripts. In the meantime, there's no need to keep this unused, outdated logic around.
-
Joanmarie Diggs authored
Writer returns "", 0, 0 for the current character when the caret offset is at the end of the text. Handling that scenario was removed as part of code clean up. Restore that check. Also merge the workaround for gnome- shell, which returns an offset of -1 when the caret offset is at the end of text, into the default script's echoPreviousWord.
-
Joanmarie Diggs authored
Be sure we don't have an empty queue.
-
Joanmarie Diggs authored
When the user deletes text, we want to present the text at the new location. Unfortunately, when the user deletes a message in Thunderbird, Thunderbird fires text deletion (and insertion) events that appear to be it re-using the current list/tree item. This causes us to speak one or a few characters unexpectedly. We do not want to handle these deletions as user-triggered text changes. Fortunately, we can distinguish these deletions from typical deletions because Gecko appends the "system" suffix in this case. Use that in isDeleteCommandTextDeletionEvent to filter out these events.
-
Joanmarie Diggs authored
Every time the selected mail message changes in Thunderbird, we are spammed by text changed events we don't want to present to the user. These all have the "system" suffix, so we can ignore them in the Event Manager rather than queueing them up for processing.
-
Joanmarie Diggs authored
Yet more event spam from interacting with Thunderbird's message list.
-
Joanmarie Diggs authored
Changes in Thunderbird are impacting presentation of deleted items. Before, the deleted item would actually be deleted. Then we'd get a selection change event and present it. Now the events seem to be as follows: 1. The user presses delete 2. Thunderbird changes the name of the deleted item to reflect the newly-selected item (and fires an event) 3. Thunderbird fires the selection-change events Given the above, Orca gets a selection event as expected, but does not present it because the selected accessible object has not changed. Thus we need to present the name-change instead. Thunderbird was returning early for name-change events that were not from the document in relation to a deletion. So stop returning early. In addition, the web script was always returning True (event was handled). That's a bug. Return False if the event wasn't handled.
-
Joanmarie Diggs authored
There were two sources of this regression: 1. We had cached an invalid value in "treatAtTextObject". We should always treat editable objects as text objects regardless of their contents. 2. When given an offset that corresponds to the end of a string, some text implementations return the correct char/line/word/etc.; others do not. So even if we treat the entry as a text object, we could fail to display anything for braille when the offset was at the end. Fix this by reducing the offset by one when it's the same as the character count. All implementations seem fine with this.
-
Andy Holmes authored
Orca almost always uses a single source of truth for preferences, to ensure broken states are hard to achieve. To keep the UI fully functional, we intercept Orca's attempts to read from saved settings, until the user willfully saves the settings. The user must have either kept or change the speech system, so the override property is cleared and Orca returns to its normal operation. closes #472
-
Andy Holmes authored
Meson has a tool run with `meson devenv` that collects all the installed location and ensures Orca is being run with the build-time dependencies. This is as simple to use as `bash` and `exit` and makes testing for volunteers much easier.
-
Joanmarie Diggs authored
-
Andy Holmes authored
Failable initialization of Spiel was being done outside of the usual `_init()` function. Catch these exception with the rest, to avoid leaving Orca in a silently broken state.
-
Andy Holmes authored
Sometimes when `speak()` is called we defer to another function which will create an utterance, so only create on when necessary.
-
Andy Holmes authored
When selecting a fallback voice, the server assumed it would always be passed a non-empty default. Use the same function for retrieving the target language to avoid starting up with an unacceptable fallback.
-
Joanmarie Diggs authored
-
Joanmarie Diggs authored
As a side effect of 621d4efa, Orca got super chatty in Thunderbird whenever one was typing the subject of an email. This was caused by our no longer ignoring most name-change events from Thunderbird due to changes in Thunderbird (reusing objects and changing their name rather than creating new objects). In order to solve this particular regression in the user experience, ignore name changes that are fired on a frame if focus is in an editable field and the complete text of that editable field is contained within the new name of the frame.
-
Joanmarie Diggs authored
-
Markus Göllnitz authored
When GetAttributeRun, for example, is not implemented, or fails otherwise for a text, we know of no attributes for it, and do so for the complete content of it. Thus, it makes sense to claim said range – the complete text – has no attributes. That makes users like splitSubstringByLanguage still use the string, even though the attributes are not known. Signed-off-by:Markus Göllnitz <camelcasenick@bewares.it>
-
Joanmarie Diggs authored
See issue #477.
-
Joanmarie Diggs authored
Prior to 621d4efa, we were treating (incorrectly) all name change events as handled, and functionally ignoring those events. Now that we no longer do so, Orca is getting chatty. One instance of such chattiness is when fast-forwarding on YouTube. YouTube briefly changes the name of the frame each time shift+right is pressed and changes it back when released. We should not be presenting those changes. Rather than trying to handle specific instances of name changes on browser frames, it should be safe to ignore them: When a new page is loaded, we present the name of that page which typically matches the frame name. Plus back when we were ignoring all name changes, no one reported Orca failing to present the changed name of the current window.
-
Joanmarie Diggs authored
-
Joanmarie Diggs authored
We were only doing so when the event was for the active window. However, we sometimes correct the active window in response to an input event, so it is possible to get a window:activate event for a window that we set as our active window. The script associated with that window should be used for processing object events.
-
Joanmarie Diggs authored
This reverts commit 8325d8af.
-
Joanmarie Diggs authored
-
Joanmarie Diggs authored
We were correcting for this error condition, but did so by setting the offset to 0. As a result, Orca was saying the first character when it was expected to say something else. Change that by always treating -1 as an error when the character at offset is sought.
-
Joanmarie Diggs authored
-
Joanmarie Diggs authored
-
Samuel Thibault authored