enso/lib/rust/ensogl/component
Mateusz Czapliński 7dc971f4bb
GridView auto-scrolling when navigating with keyboard (#3687)
When a GridView is navigated using the keyboard, scroll it to display the newly selected entry.

https://www.pivotaltracker.com/story/show/182593635

#### Visuals

See below for a video demonstrating automatic scrolling of the GridView when arrow keys are pressed on the keyboard. The first video below shows the default scrolling behavior in a GridView without headers.

Note:
- When the Grid View is scrolled, the mouse hover highlight moves away from the mouse position. This is not a new regression, the behavior is the same in the `develop` branch (e.g. when scrolling using the mouse).



https://user-images.githubusercontent.com/273837/190183984-91f7808c-3606-43f8-bcda-ac4d5f84e00f.mov



The video below shows the behavior in a GridView with headers when the GridView is first scrolled to its top-left corner. The following guidance from the Design Doc is enabled and showcased:

> Users can change the selected component by pressing the arrow keys. The Focus does not move up if it does not have to (in most cases, the focus is located in the second row from the bottom). Instead, the component list scrolls down if there are enough entries.

https://user-images.githubusercontent.com/273837/189151546-e50aaf22-6f4d-41cb-809f-60038305745f.mov

The next video shows the behavior in the same GridView as in the previous example when the GridView is first scrolled away from any of its boundary entries. Notably, scrolling happens only when the selection is moved using the keyboard arrow keys, not when changing the selection using the mouse. This behavior is based on a discussion with @wdanilo on Discord.

https://user-images.githubusercontent.com/273837/189151974-d992be93-f61f-4e9f-9f4c-dfe260bbec5b.mov
2022-09-21 17:41:20 +00:00
..
button Fixing regression - mouse buttons were not distinguished properly. (#3401) 2022-04-15 16:08:30 +02:00
drop-down-menu Fixing regression - mouse buttons were not distinguished properly. (#3401) 2022-04-15 16:08:30 +02:00
drop-manager New IDE build script (#3466) 2022-05-23 04:16:04 +02:00
file-browser Linting codebase 2022-03-10 05:32:33 +01:00
flame-graph Implement multi-process message visualisation. (#3423) 2022-05-03 09:40:27 +00:00
grid-view GridView auto-scrolling when navigating with keyboard (#3687) 2022-09-21 17:41:20 +00:00
gui New IDE build script (#3466) 2022-05-23 04:16:04 +02:00
label Component list panel integration (#3530) 2022-07-14 12:00:52 +00:00
list-view Component Browser Section Navigator (left bar) (#3553) 2022-07-20 06:35:26 +00:00
scroll-area GridView auto-scrolling when navigating with keyboard (#3687) 2022-09-21 17:41:20 +00:00
scrollbar Component Browser Section Navigator (left bar) (#3553) 2022-07-20 06:35:26 +00:00
selector List Panel View Part 2 (#3537) 2022-07-04 14:08:31 +00:00
sequence-diagram Component Group Entry with icons and text highlighting. (#3459) 2022-05-24 09:48:19 +02:00
shadow Fully visible group name in partially scrolled Component Group View (#3447) 2022-05-17 13:52:08 +00:00
src Implement multi-process message visualisation. (#3423) 2022-05-03 09:40:27 +00:00
text Component Browser Entry (#3718) 2022-09-21 14:10:16 +00:00
toggle-button Fixing regression - mouse buttons were not distinguished properly. (#3401) 2022-04-15 16:08:30 +02:00
tooltip New IDE build script (#3466) 2022-05-23 04:16:04 +02:00
Cargo.toml Grid View with Scrolling (#3588) 2022-07-19 08:39:23 +00:00