Table column drag handles cause bad UX.
- Dominant language
- Rust
- Stars
- 30.6k
- Forks
- 2.1k
- Avg merge
- 1d 9h
- Merged PRs (30d)
- 72
Description
**Describe the bug**
When the user moves the mouse over a table column divider, a drag handle flashes causing a distracting user experience.
Other operating systems (Windows) and applications (Explorer, Excel, GoogleSheets) only allow columns to be resized from the table's column headers. They also don't display or flash the drag handle until the drag handle is clicked.
**To Reproduce**
Steps to reproduce the behavior:
1. Run the egui demo app
2. Start the tables demo.
3. Enable 'Clickable rows', select a row<-- bad ux more aparent when enabled.
4. Move the mouse pointer quickly and then slowly over the selected row's column dividers.
5. Do the same again over a non-selected row.
6. Observe row selection disappears when cursor is over a column divider.
7. Observe the column divider changes color.
8. Try again in light/dark modes.
As per this video:
https://github.com/user-attachments/assets/7f8feb80-c339-452c-89c0-0a40d445eaf5
**Expected behavior**
1. When a table has a header, resizing a column should only be possible from the table header.
2. When a table has a header, non-interactive column dividers should be shown in place of the existing drag handles.
3. When a table does /not/ have a header, column dividers /should/ be usable as drag handles.
3. Drag handles should not flash or change color when moving the mouse over a table.
4. The mouse pointer should change to indicate that the user can perform an interaction with the drag handle.
5. When the user interacts with a drag handle, e.g. by clicking it, the drag handle should change color and revert when interaction is complete.
**Screenshots**
Comparison video:
https://github.com/user-attachments/assets/f8888167-2d79-4f09-9144-a09fcb71d5e7
**Additional information**
1. Requesting that the *default* behavor is changed as above so that all egui UIs are consistent.
2. If users *really* want flashing drag handles, then wait for a feature request and add that as additional functionality as-required.
3. Users might also want columns to be resizable from the dividers below the headers, again, wait for a feature request and add that as additional functionality as-required.
Contributor guide
Research direction
Run the egui demo app and open the tables demo, then reproduce the behavior with clickable rows enabled in light and dark modes. Trace the tables demo and table interaction behavior; done means headers control resizing when present, dividers do not flash or change color on hover, selection remains stable, and headerless tables still allow divider resizing.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- frontend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100