listview keybindings
This is a bug to figure out the keybindings to be supported by the new GtkListView widgets. I'll leave the top comment for tracking the currently implemented bindings.
Here's the list of the current keybindings:
key | action | orientation | |
---|---|---|---|
Up | (1,2) | Move focus 1 row backward | vertical |
Down | (1,2) | Move focus 1 row forward | vertical |
Left | (1,2) | Move focus 1 row backward | horizontal |
Right | (1,2) | Move focus 1 row forward | horizontal |
Home | (1) | Move focus to first row | |
End | (1) | Move focus to last row | |
PageUp | (1) | Move focus as many rows backward as fully fit the visible area, but at least 1 | |
PageDown | (1) | Move focus as many rows forward as fully fit the visible area, but at least 1 | |
Ctrl-A, Ctrl-/ | Select All | ||
Ctrl-Shift-A, Ctrl-\ | Unselect All | ||
Space | (3) | Toggle selection of current row | |
Return | (3) | Activate current row |
All keys marked (1) follow the same modifier behavior:
- no modifier deselects everything and selects the resulting row.
-
Shift
deselects everything and then selects every row from the last selection row to the resulting row. -
Ctrl
just moves the focus but does not change selection. -
Ctrl+Shift
sets selection state of every row from the last selected row to the resulting row to the same selection state as the last selection row.
Keys marked (2) are not implemented without modifier, because they follow the regular arrow key focus behavior. This allows rows containing multiple focusable widgets to move focus between those widgets using the arrow keys.
Keys marked (3) are implemented in GtkListItem
.