Skip to content

Add stickyHeader setting to fix graph header while scrolling - #1

Draft
plitzenberger wants to merge 2 commits into
developfrom
cursor/sticky-graph-header-e871
Draft

Add stickyHeader setting to fix graph header while scrolling#1
plitzenberger wants to merge 2 commits into
developfrom
cursor/sticky-graph-header-e871

Conversation

@plitzenberger

@plitzenberger plitzenberger commented Jul 16, 2026

Copy link
Copy Markdown

Summary

Adds a new extension setting git-graph.stickyHeader (default true) that keeps the Graph View control bar and column headers fixed at the top while scrolling.

This implements the long-requested sticky header behavior (upstream #132 / #394):

  • New setting wired through package.json, Config, GitGraphViewConfig, and the webview initial state
  • When enabled, #controls and #tableColHeaders use position: sticky
  • Table header top offset tracks control-bar height (including multi-line overflow)
  • Scroll shadow is positioned beneath the sticky header stack
  • Context menu uses fixed positioning to avoid overlapping sticky headers

Disable with:

"git-graph.stickyHeader": false

Test plan

  • Unit tests for Config.stickyHeader
  • HTML generation tests for sticky class on/off
  • Related test suites pass (config.test, gitGraphView.test — 439 tests)
  • Lint passes
  • Full npm run compile succeeds
  • Manually verify sticky header while scrolling in the Graph View
  • Manually verify header remains sticky when the control bar wraps to multiple lines
  • Manually verify scroll shadow appears under column headers when scrolled
  • Manually verify dropdowns and context menus still render correctly with sticky enabled
  • Confirm "git-graph.stickyHeader": false restores previous scroll-away behavior
Open in Web Open in Cursor 

cursoragent and others added 2 commits July 16, 2026 10:13
Introduce git-graph.stickyHeader (default true) so the control bar and
column headers stay visible when scrolling the Graph View, following the
approach from upstream PR mhutchie#394.

Co-authored-by: Philipp Litzenberger <philipp@bendcircular.com>
Restrict web/tsconfig types to node and include es2016.array.include so
tsc no longer pulls in incompatible babel declaration files.

Co-authored-by: Philipp Litzenberger <philipp@bendcircular.com>
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