# editor: Refactor scrollbar-related code \(\#24134\) · gitcafe/zed

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

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

Visibility: public

Requested revision: a65ea2708cee5c956eaa4c0089cea6e131e3c756

Requested commit: a65ea2708cee5c956eaa4c0089cea6e131e3c756

Commit: a65ea2708cee5c956eaa4c0089cea6e131e3c756

Tree: 2124e29dcb7ab69d3f4815cb3e2dad42cde37038

Author: Finn Evers

Committer: GitHub

## Message

```
editor: Refactor scrollbar-related code (#24134)

This PR is primarily an implementation of @osiewicz
[comment](https://github.com/zed-industries/zed/pull/19495#pullrequestreview-2488877957)
in an effort to increase maintainability after the horizontal editor
scrollbar was added in #19495 . I also want to build on these changes in
future PRs to adress some other small bugs.

This primarily does the following:
1. Uses `along` wherever possible
2. Fixes the amount of mouse event listeners attached to the editor when
scrollbars are displayed to 2 instead of 2-4 in case both scrollbars are
displayed.

This can be done since only one scrollbar can be dragged by the cursor
at any given time, so the event listeners now account for that. The
state reflecting the scrollbar dragging state was also updated
accordingly.

It does not change any functionality besides the aforementioned event
listener code as well as some minor bugs which where present after
#19495 , namely:
- One missing `cx.stop_propagation()` (see
[here](https://github.com/zed-industries/zed/blob/a8741dc3107a205ba5a28aa8c3e18747ceed2ba3/crates/editor/src/element.rs#L4684)
and
[here](https://github.com/zed-industries/zed/blob/a8741dc3107a205ba5a28aa8c3e18747ceed2ba3/crates/editor/src/element.rs#L4838)
respectively).
- The horizontal scrollbar thumb having a small border on the left side,
which seems to be unintended for the horizontal scrollbar whilst
intended for the vertical one. Since this is a minimal change, I figured
it could be already included in this PR.

This PR admittetly grew quite large over time, however, much of the diff
is just renames to account for the code now working for both axes as
well as moved code. The logic remains (or should at least be)
unaffected. If I should split this into two PRs or remove some of the
changes, please let me know.

Release Notes:

- N/A
```

## Parents

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

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