Skip to content

Split-pane divider drag is broken in both TUI and GTK (falls through to text-selection) #582

Description

@JDonaghy

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)

  1. Launch TUI mode: vimcode --tui <file>
  2. Open a vertical split: :vsplit
    • Expected: a visible divider line rendered between the two panes.
    • Actual: no divider is rendered at all.
  3. Repeat with a horizontal split: :split
    • Same result — no visible divider line either.
  4. 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)

  1. Launch GTK mode: vimcode <file>
  2. 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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    coordTracked by coord-tui pipelinestatus:readyRefined and ready to enter the work pipeline

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions