Summary
Split-pane divider drag-to-resize is completely non-functional in both the
TUI and GTK backends. Clicking and dragging where the divider should be does
not grab/move the divider at all — instead the drag falls straight through
and starts a text-selection in the editor content underneath.
Discovered during the smoke test of #550 (unify GTK/TUI window-rect
coordinate conventions). Initially suspected as a regression from that
branch, but confirmed pre-existing on develop (reproduced on a fresh
develop build, not just the #550 branch) — so this is a separate,
standalone bug, not caused by #550.
Repro steps (TUI)
- Launch TUI mode:
vimcode --tui <file>
- Open a vertical split:
:vsplit
- Expected: a visible divider line rendered between the two panes.
- Actual: no divider is rendered at all.
- Repeat with a horizontal split:
:split
- Same result — no visible divider line either.
- Click and drag in the area where the divider should logically sit (the
boundary between the two panes).
- Expected: grabs the divider and resizes the panes.
- Actual: the drag instead starts a text-selection in the editor pane
underneath — the divider has no hit-test region reacting to the drag
at all.
Repro steps (GTK)
- Launch GTK mode:
vimcode <file>
- Open a split and attempt to drag the divider.
- Actual: identical symptom to TUI — the drag starts a text-selection in
the editor instead of grabbing/moving the divider.
- (Divider visibility in GTK was not separately re-confirmed; only that
dragging is non-functional with the same failure mode as TUI.)
Why this is one issue, not two backend-specific bugs
Both backends show the exact same failure mode (drag falls through to
editor text-selection), which is suspicious — either there's a shared
divider hit-test/drag-state code path both backends route through that's
broken, or the same class of bug was independently introduced/exists in
both backends' divider handling. Worth checking whether a hit-test region
for the divider exists/registers at all before checking coordinate math,
since the symptom looks like the divider consumes no events rather than
consuming them at the wrong offset.
Suspected files/areas
src/tui_main/render_impl.rs — divider position computation/rendering
(grep GroupDivider, divider position/cross_start)
src/tui_main/mouse.rs — divider hit-test and drag handling (grep
divider)
src/gtk/ — divider/split drag handling
- Any shared engine/render code both backends call for divider hit-test or
drag-state, per the Platform-Neutral push (see GOALS.md /
Platform-Neutrality Rule in CLAUDE.md) — check there before writing new
per-backend code.
Impact
Users cannot resize split panes via mouse drag in either backend today —
this is a real, reproducible usability regression/gap independent of #550.
Summary
Split-pane divider drag-to-resize is completely non-functional in both the
TUI and GTK backends. Clicking and dragging where the divider should be does
not grab/move the divider at all — instead the drag falls straight through
and starts a text-selection in the editor content underneath.
Discovered during the smoke test of #550 (unify GTK/TUI window-rect
coordinate conventions). Initially suspected as a regression from that
branch, but confirmed pre-existing on
develop(reproduced on a freshdevelopbuild, not just the #550 branch) — so this is a separate,standalone bug, not caused by #550.
Repro steps (TUI)
vimcode --tui <file>:vsplit:splitboundary between the two panes).
underneath — the divider has no hit-test region reacting to the drag
at all.
Repro steps (GTK)
vimcode <file>the editor instead of grabbing/moving the divider.
dragging is non-functional with the same failure mode as TUI.)
Why this is one issue, not two backend-specific bugs
Both backends show the exact same failure mode (drag falls through to
editor text-selection), which is suspicious — either there's a shared
divider hit-test/drag-state code path both backends route through that's
broken, or the same class of bug was independently introduced/exists in
both backends' divider handling. Worth checking whether a hit-test region
for the divider exists/registers at all before checking coordinate math,
since the symptom looks like the divider consumes no events rather than
consuming them at the wrong offset.
Suspected files/areas
src/tui_main/render_impl.rs— divider position computation/rendering(grep
GroupDivider, divider position/cross_start)src/tui_main/mouse.rs— divider hit-test and drag handling (grepdivider)src/gtk/— divider/split drag handlingdrag-state, per the Platform-Neutral push (see
GOALS.md/Platform-Neutrality Rule in
CLAUDE.md) — check there before writing newper-backend code.
Impact
Users cannot resize split panes via mouse drag in either backend today —
this is a real, reproducible usability regression/gap independent of #550.