Frontmatter
| id | 9529 |
| title | Add lightweight cell resizing method to grid.Body |
| state | Closed |
| labels | enhancementaigrid |
| assignees | tobiu |
| createdAt | Mar 20, 2026, 5:21 PM |
| updatedAt | Mar 20, 2026, 5:34 PM |
| githubUrl | https://github.com/neomjs/neo/issues/9529 |
| author | tobiu |
| commentsCount | 1 |
| parentIssue | null |
| subIssues | [] |
| subIssuesCompleted | 0 |
| subIssuesTotal | 0 |
| contentTrust | |
| projected | |
| quarantined | 0 |
| signals | [] |
| blockedBy | [] |
| blocking | [x] 9528 Real-time cell resizing during grid column drag:move |
| closedAt | Mar 20, 2026, 5:34 PM |
Add lightweight cell resizing method to grid.Body

tobiu
Mar 20, 2026, 5:28 PM
Input from Gemini 3.1 Pro:
✦ I have implemented
updateCellPositionsinsidesrc/grid/Body.mjsand hooked it intoonDragMoveinsrc/grid/header/plugin/Resizable.mjsusing the shallowupdateDepth: 2.This directly adjusts the VDOM cell nodes without forcing full re-renders of the rows and avoiding
toolbar.passSizeToBody()on every drag tick.The changes have been pushed to the
devbranch. Please review and verify the visual stability during a resize drag.
tobiu cross-referenced by #9528 on Mar 20, 2026, 5:33 PM
Description
As a prerequisite for real-time grid cell resizing during a column drag (Issue #9528), we need a lightweight method in
src/grid/Body.mjsto adjust cell widths and horizontal positions without causing a full row re-render.Problem
Calling
toolbar.passSizeToBody()on everydrag:movetick triggers a fullcreateViewData()cycle, destroying virtualization recycling benefits.Solution
Implement
updateCellPositions(dataField, newWidth)insrc/grid/Body.mjsto:columnPositionscollection cache.style.widthof the resized column's cells in the VDOM.style.leftof all subsequent columns' cells in the VDOM.availableWidth.updateDepth: 2) on the body to sync the DOM efficiently.