# workspace: Prevent overwriting window bounds when window is not active \(\#60950\) · gitcafe/zed

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

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

Visibility: public

Requested revision: 40102ee7c2c4c119791af7fff202595d2bc4c3ce

Requested commit: 40102ee7c2c4c119791af7fff202595d2bc4c3ce

Commit: 40102ee7c2c4c119791af7fff202595d2bc4c3ce

Tree: 6221f2da611cb9a9d142c8409d13be87d8826ad5

Author: i18u

Committer: GitHub

## Message

```
workspace: Prevent overwriting window bounds when window is not active (#60950)

# Objective

- Prevent the Zed window height from shrinking to the built-in MacBook
screen's height after macOS screen lock or display sleep in
multi-monitor setups.
- Related to #41246.

## Solution

- Ignore window bounds change events in `observe_window_bounds` if the
window is currently inactive (`!window.is_window_active()`).
- **Explanation**: When the system locks or sleeps, macOS reconfigures
displays (monitors power down, and macOS temporarily treats the built-in
screen as the only primary display). This triggers a resize event on
inactive Zed windows to fit them onto the built-in display. Because the
window was inactive, the `observe_window_bounds` listener still
triggered and scheduled `save_window_bounds`, immediately overwriting
the workspace database with the temporary shrunk dimensions.
- By ignoring bounds updates when the window is inactive, we preserve
the correct original bounds in the database. Since a user-initiated
resize/move always activates/focuses the window first, bounds will still
be correctly persisted for intentional manual updates.

## Testing

- Yes, tested locally on macOS (Sequoia).
- Verified that compiling the `workspace` crate succeeds (`cargo check
-p workspace`).
- Ran all 220 unit tests in the `workspace` crate (`cargo test -p
workspace`), and all passed successfully.
- **How to test**:
1. Open Zed on an external monitor and set it to a large size (or
maximize).
  2. Lock the screen (or let the displays sleep).
  3. Wake/unlock the screen.
4. Verify that the window recovers and maintains its original height
instead of shrinking.

## 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 adheres to Zed's UI standards
([UX/UI](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
and
[icon](https://github.com/zed-industries/zed/blob/main/crates/icons/README.md)
guidelines)
- [x] Tests cover the new/changed behavior
- [x] Performance impact has been considered and is acceptable

---

Release Notes:

- Fixed an issue where the Zed window would shrink to the built-in
display's height on macOS after screen lock or display sleep in
multi-monitor setups.

Co-authored-by: Kirill Bulatov <kirill@zed.dev>
```

## Parents

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

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