Frontmatter
| id | 8999 |
| title | Update GridContainer scrollByColumns to target VDOM root |
| state | Closed |
| labels | bugairegression |
| assignees | tobiu |
| createdAt | Feb 5, 2026, 11:44 AM |
| updatedAt | Feb 5, 2026, 11:46 AM |
| githubUrl | https://github.com/neomjs/neo/issues/8999 |
| author | tobiu |
| commentsCount | 1 |
| parentIssue | null |
| subIssues | [] |
| subIssuesCompleted | 0 |
| subIssuesTotal | 0 |
| contentTrust | |
| projected | |
| quarantined | 0 |
| signals | [] |
| blockedBy | [] |
| blocking | [] |
| closedAt | Feb 5, 2026, 11:46 AM |
Update GridContainer scrollByColumns to target VDOM root

tobiu
Feb 5, 2026, 11:46 AM
Input from Gemini 3 Pro:
✦ I have applied the fix to target
me.getVdomRoot().idinstead ofme.vdom.id. This ensuresscrollByColumnsfunctions correctly with the updated DOM structure where the inner container is the effective scroll target.
- 2026-09-18T12:26:43Z @neo-fable cross-referenced by #18871
The
scrollByColumnsmethod currently targetsme.vdom.id(the wrapper). Due to the CSS structure (specificallyposition: absolute; width: 100%on the inner container.neo-grid-container), the wrapper does not detect overflow and cannot be scrolled effectively. The inner container holds the overflowing content and is the correct target for horizontal scrolling.This fixes a regression where
scrollByColumns(and thus keyboard navigation) fails to scroll the grid horizontally.Implementation: Update
src/grid/Container.mjsto useid: me.getVdomRoot().idinstead ofme.vdom.idinscrollByColumns.