# git_graph: Make the graph canvas resizable \(\#52953\) · gitcafe/zed

[View on GitCafe](https://git.cafe/gitcafe/zed/commit/73cd7ec6248293c6acd8ed6e5fa1cc24b9ef37cf)

Repository: [gitcafe/zed](https://git.cafe/gitcafe/zed)

Visibility: public

Requested revision: 73cd7ec6248293c6acd8ed6e5fa1cc24b9ef37cf

Requested commit: 73cd7ec6248293c6acd8ed6e5fa1cc24b9ef37cf

Commit: 73cd7ec6248293c6acd8ed6e5fa1cc24b9ef37cf

Tree: fde5df988d7a9eb15631532694fcb2e853636a7e

Author: Anthony Eid

Committer: GitHub

## Message

```
git_graph: Make the graph canvas resizable (#52953)

### Summary

This PR integrates the git graph canvas with the `Table` component’s
`RedistributableColumnsState`, making the graph column resizable while
preserving the table’s existing resize behavior. In particular, column
resizing continues to use the same cascading redistribution behavior as
the table. This is also the last PR needed to remove the feature flag on
the git graph!

### Table API changes

I pulled the redistributable column logic out of `Table` into reusable
UI helpers so layouts outside of `Table` can participate in the same
column resizing behavior. This adds a shared
`RedistributableColumnsState` API, along with helpers for binding
drag/drop behavior, rendering resize handles, and constructing header
resize metadata. I also added `ColumnWidthConfig::explicit` and
`TableRenderContext::for_column_widths` so callers can render table like
headers and content with externally managed column widths.

The reason for this change is that the git graph now renders a custom
split layout: a graph canvas on the left and table content on the right.
By reusing the same column state and resize machinery, the graph column
can resize together with the table columns while preserving the existing
table behavior, including cascading column redistribution and double
click reset to default sizing.

I also adjusted the resize handle interaction styling so the divider
stays in its hovered/highlighted state while a drag is active, which
makes the drag target feel more stable and visually consistent during
resizing.

### Preview

https://github.com/user-attachments/assets/347eed71-0cc1-4db4-9dee-a86ee5ab6f91



Self-Review Checklist:

- [x] I've reviewed my own diff for quality, security, and reliability
- [x] Unsafe blocks (if any) have justifying comments
- [x] The content is consistent with the [UI/UX
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
- [ ] Tests cover the new/changed behavior
- [x] Performance impact has been considered and is acceptable

Release Notes:

- N/A or Added/Fixed/Improved ...
```

## Parents

- [d3435b1444d3eb0381ce2d724fcf3eccd39bf83f](https://git.cafe/gitcafe/zed/commit/d3435b1444d3eb0381ce2d724fcf3eccd39bf83f?format=markdown)

[Source at this commit](https://git.cafe/gitcafe/zed/tree/73cd7ec6248293c6acd8ed6e5fa1cc24b9ef37cf?format=markdown)
