Commit Graph

57 Commits

Author SHA1 Message Date
d180158749 Remove automatic capture of arrow keys by nodes.
On one hand, it's a bit confusing that UIs can be arrowed around independently of tab/shift-tab. Arrow navigation doesn't feel as intuitive, as it isn't obvious where you'll land.

On the other, it's quicker to navigate between areas of the editor UI by arrowing up/down between controls, and may solve the issue of having to tab a million times to traverse all controls. This also allows for in-game UIs to be traversed using arrows and, quite probably, gamepads as well.
2020-01-25 11:44:20 -06:00
1bef677066 Present button disabled state. 2020-01-21 15:28:23 -06:00
22bb195db0 Don't double-present popup menu item text in cases where the item and shortcut resource name are identical. 2020-01-13 18:06:26 -06:00
fc5b591fe3 Better dialog presentation, and make message labels non-focusable. 2020-01-13 17:59:48 -06:00
fe19717640 Make AcceptDialog focusable so its message can be reread. 2020-01-13 17:52:59 -06:00
cc910a8570 Improve dialog-handling and protect keybinding-setter special case. 2020-01-13 17:16:34 -06:00
be6a6b528e Add support for reading AcceptDialog messages automatically. 2020-01-02 11:43:56 -06:00
2aea81749c Make guessed labels non-focusable to minimize on tabbing. 2019-12-30 09:16:00 -06:00
d5c79f7c56 Don't guess the label for a label. 2019-12-30 09:13:32 -06:00
fbbbb1e06e Revert "Apparently, focused is triggered on mouse_enter as well, so this code isn't needed."
Necessary for next commit, which selectively ignores mouse events and needs this code for explore-by-touch.

This reverts commit dc6186c583.
2019-12-30 08:25:57 -06:00
dc6186c583 Apparently, focused is triggered on mouse_enter as well, so this code isn't needed. 2019-12-29 21:53:35 -06:00
50ea09d7f7 And bring back old cleanup code, which now seems to work better post-yield-abandonment. 2019-12-29 20:14:11 -06:00
833a34b602 Don't speak empty labels since this seems to cause a silent crash. 2019-12-29 19:52:33 -06:00
4ff6b51114 Double-tap runs ui_accept. 2019-12-29 18:52:44 -06:00
8f53556129 Better label-guessing logic, and make associated labels non-focusable. 2019-12-28 14:41:36 -06:00
d6a6609673 Eliminate yield in favor of _process. 2019-12-27 12:46:09 -06:00
aea75e961e Eliminate warnings about disconnection of nonexistent timeout signal. 2019-12-27 12:04:09 -06:00
9051f381fe Use WeakRef to avoid double-free of timers. 2019-12-26 18:39:10 -06:00
d9c740abd6 Return to having Accessible be a Node under ScreenReader, and having _exit_tree free resources.
This eliminates the need to track and iterate through a separate array of `Accessible`s in `ScreenReader`.

The previous performance issues are resolved by ensuring that any nodes processed aren't children of the `ScreenReader` node. I don't know of another way to avoid triggering signals on a child node than checking ancestry and failing fast.
2019-12-26 18:25:26 -06:00
24483e4453 Patch another leak. 2019-12-23 09:59:12 -06:00
dfe0c8179e Make Accessible extend Node and parent it to ScreenReader for easier cleanup. 2019-12-22 18:55:45 -06:00
6adce2706c Ensure text and old_text are set before processing text changes. 2019-12-22 10:26:44 -06:00
8e7f8c69f9 Connect signal in deferred mode to make plugin work on Beta 4. 2019-12-22 09:33:00 -06:00
9f93730aa8 Switch order of Range and ProgressBar checks, resolving crash and restoring progress updates. 2019-12-20 13:59:31 -06:00
6982e2023d Don't speak range changes if the node isn't focused. 2019-10-18 11:35:04 -05:00
e1d24a00a4 Basic support for Range.
Tested with `HSlider` and has basic support for other widget types, but I'm only adding support for what I'm immediately using or can access via the editor.
2019-10-18 10:58:16 -05:00
82b24801a3 Basic stub functionality for TextEdit.
This can barely be called "support." It reads all text as a single block. I'd like to at least be able to unfocus the `TextEdit`, but it's going to require a custom key. Ctrl-tab and Ctrl-shift-tab seem like good candidates, but the editor grabs those already.
2019-10-18 10:44:31 -05:00
fc3c70e16c #2: Fix incorrect method name in signal connection.
Fixes #2.
2019-10-17 10:02:55 -05:00
Ellen Poe
fc475ae6b8 Fix tree traversal bug 2019-10-16 18:09:01 -07:00
dced450b46 Substitute is checks with is_class so they'll work in editor and export builds. 2019-10-14 09:36:08 -05:00
fdd5f1a5f6 Assorted changes:
* Try to improve list selection handling.
 * Use `get_class()` to check class membership for editor classes not included in exported games.
2019-10-10 09:49:54 -05:00
6b0c920549 Crude mitigation for out-of-bounds list indices when arrowing through ItemList. 2019-10-08 14:29:20 -05:00
23fd884b2e Various changes:
* Add automatic speaking of percentages when changed.
 * Remove icon for now.
2019-10-08 08:56:51 -05:00
723d4c298c Very naive support for LineEdit input, only single-character changes for now. 2019-10-03 10:28:54 -05:00
18943786a9 When setting up initial tree selection, don't render the node unless it is focused. 2019-10-03 09:47:24 -05:00
5a38aac4a9 Make naming a bit more consistent with signals. 2019-10-03 09:41:49 -05:00
0783dfb548 Add global signal-catching for better handling of cases where focus is lost. 2019-10-03 09:34:22 -05:00
0e8b6ae9e8 Use global TTS singleton to avoid passing around instances. 2019-10-02 16:20:25 -05:00
8ef356b9bb Special-case disallowing focus on bunches of nodes. 2019-09-30 15:24:02 -05:00
84857e1222 Present checkable menu items. 2019-09-30 15:15:00 -05:00
41550ceef6 When right-clicking TreeItems, set the click position to their center. 2019-09-30 14:48:11 -05:00
1037becadf Only prevent checkbox toggles if node is focused. 2019-09-30 09:47:42 -05:00
e68765165c Revert "Add group navigation."
Going to be too complicated to implement the way I wanted to for now. Need to rethink this.

This reverts commit cafd50675b.
2019-09-26 09:03:46 -05:00
cafd50675b Add group navigation.
Moving through every focusable widget by tab/shift-tab is very slow. This commit introduces the concept of groups--widgets that can be skipped through via ctrl-tab/ctrl-shift-tab.

Right now this only includes containers where all children are focusable, but I'll expand the definition of groups over time to make navingating to large areas of the UI easier..
2019-09-26 08:10:48 -05:00
49d6eb8e59 Rename check_caret_moved to be more consistent. 2019-09-26 07:52:51 -05:00
24d3ea596b Slightly better ItemList handling, though for some reason I can't make it work in file selections. 2019-09-25 17:18:01 -05:00
065f62181b Merge branch 'master' of https://gitlab.com/lightsoutgames/godot-accessibility 2019-09-25 09:18:20 -05:00
ca73c2f255 Another attempted fix for cases where focus is unset and nothing can be done.
When we unfocus, wait a second. If we don't have focus after the timer elapses, warp the mouse to the global coordinates.

This seems to restore some semblance of focus whenever it is unset, while not breaking the case where a focus is set and the mouse suddenly jumps, thus changing the focus again.
2019-09-25 09:15:49 -05:00
af1bd8ec91 Merge branch 'master' of https://gitlab.com/lightsoutgames/godot-accessibility 2019-09-25 09:12:44 -05:00
7630fa3ec0 Capture arrow input on trees so UI focus doesn't skitter off randomly. 2019-09-25 09:12:40 -05:00