Skip to content

fix(inspector): field resize handle tracks the drag and keeps a height per column - #3975

Merged
datlechin merged 4 commits into
TableProApp:mainfrom
vbabenkoru:fix/inspector-resize-handle
Nov 1, 2026
Merged

datlechin merged 4 commits into
TableProApp:mainfrom
vbabenkoru:fix/inspector-resize-handle

Conversation

@vbabenkoru

@vbabenkoru vbabenkoru commented Nov 1, 2026 •

Copy link
Copy Markdown
Contributor

Docs: TableProApp/docs#152.

Summary

  • The field resize handle is an AppKit view (FieldResizeHandleView), so the inspector's List no longer takes the mouse a few points into a drag.
  • The handle owns its hover, draws its grip and sets the cursor from a cursor-update tracking area (NSCursor.dividerResize, shared with ResizeCursorSplitViewController).
  • A disabled handle, as behind the JSON rendering, takes no hit, hover or cursor.
  • A click with no drag stores nothing. A handle removed or disabled mid-drag drops the drag.
  • A dragged height belongs to its column name: InspectorFieldHeightStore, device-local, last 200 columns. It holds across rows, results and relaunches.
  • Never-dragged fields start at the kind's default. The per-kind height keys are removed at launch.
  • Expansion lives in MultiRowEditState.expandedColumn, keyed by column index. It survives a new selection and a deselect, and clears when the columns change.
  • Settings reset clears the stored heights and reloads the shared store.
  • Doc comments in the touched files are now one-line // notes.
  • Intended change: AppSettingsStorageMigrationTests, AppSettingsStorageResetTests and PreferenceKeysGuardTests now pin the per-column key and the removal of the per-kind keys.

Test plan

  • FieldResizeHandleTests: inside a List, a press on the grip lands on the handle view. Also drag deltas, click without drag, stray events, disabled handle, disable and removal mid-drag.
  • InspectorFieldHeightStoreTests: per-column heights, relaunch, replacement, eviction past capacity, unreadable data, reload after reset.
  • MultiRowEditStateExpansionTests: expansion survives a new row and a deselect, clears on new columns and on release.
  • ResizableFieldMetricsTests: a base outside the range moves with the first point of drag; a zero drag commits nothing.

vbabenkoru and others added 2 commits October 31, 2026 19:59
Co-authored-by: Cursor <cursoragent@cursor.com>
@datlechin datlechin changed the title fix(inspector): field resize handle tracks the drag and sizes one field fix(inspector): field resize handle tracks the drag and keeps a height per column Nov 1, 2026
@datlechin
datlechin enabled auto-merge (squash) November 1, 2026 09:10
@datlechin
datlechin merged commit 4cd4f06 into TableProApp:main Nov 1, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants