mirror of
https://github.com/zed-industries/zed.git
synced 2025-01-24 02:46:43 +00:00
Code at the speed of thought – Zed is a high-performance, multiplayer code editor from the creators of Atom and Tree-sitter.
71a0eb3b13
Closes #22578 Currently, the `hovered` boolean in the window state is only updated by the `WM_MOUSELEAVE` event, which fires when the mouse cursor leaves the window's working area. This means that when the user moves the cursor from the window to the title bar, `hovered` is set to `false`. Later in the code, this flag is used to determine the cursor style and check if the cursor is over the correct window. The `hovered` boolean should remain active even when the mouse is over non-client items, such as the title bar or window borders. This PR fixes that by using `WM_NCMOUSELEAVE` event, which is triggered when the mouse leaves non-client items. This event is used to update the `hovered` boolean accordingly. Now, `hovered` is `true` when the mouse is over the window's working area, as well as non-client areas like the title bar. More context: - Existing: `dwFlags: TME_LEAVE` tracks window area mouse leaves, which is used in `handle_mouse_move_msg` func. - New: `dwFlags: TME_LEAVE | TME_NONCLIENT` tracks non-client mouse leaves, which is used in `handle_nc_mouse_move_msg` func. Preview: https://github.com/user-attachments/assets/b319303f-81b9-45cb-bf0c-535a59b96561 Release Notes: - Fix cursor style not changing on hover over items in the title bar on Windows |
||
---|---|---|
.cargo | ||
.cloudflare | ||
.config | ||
.github | ||
.zed | ||
assets | ||
crates | ||
docs | ||
extensions | ||
legal | ||
nix | ||
script | ||
tooling/xtask | ||
.git-blame-ignore-revs | ||
.gitattributes | ||
.gitignore | ||
.mailmap | ||
Cargo.lock | ||
Cargo.toml | ||
clippy.toml | ||
CODE_OF_CONDUCT.md | ||
compose.yml | ||
CONTRIBUTING.md | ||
Cross.toml | ||
debug.plist | ||
default.nix | ||
docker-compose.sql | ||
Dockerfile-collab | ||
Dockerfile-collab.dockerignore | ||
Dockerfile-cross | ||
Dockerfile-cross.dockerignore | ||
Dockerfile-distros | ||
Dockerfile-distros.dockerignore | ||
flake.lock | ||
flake.nix | ||
LICENSE-AGPL | ||
LICENSE-APACHE | ||
LICENSE-GPL | ||
livekit.yaml | ||
Procfile | ||
Procfile.postgrest | ||
README.md | ||
renovate.json | ||
rust-toolchain.toml | ||
shell.nix | ||
typos.toml |
Zed
Welcome to Zed, a high-performance, multiplayer code editor from the creators of Atom and Tree-sitter.
Installation
On macOS and Linux you can download Zed directly or install Zed via your local package manager.
Other platforms are not yet available:
- Windows (tracking issue)
- Web (tracking issue)
Developing Zed
- Building Zed for macOS
- Building Zed for Linux
- Building Zed for Windows
- Running Collaboration Locally
Contributing
See CONTRIBUTING.md for ways you can contribute to Zed.
Also... we're hiring! Check out our jobs page for open roles.
Licensing
License information for third party dependencies must be correctly provided for CI to pass.
We use cargo-about
to automatically comply with open source licenses. If CI is failing, check the following:
- Is it showing a
no license specified
error for a crate you've created? If so, addpublish = false
under[package]
in your crate's Cargo.toml. - Is the error
failed to satisfy license requirements
for a dependency? If so, first determine what license the project has and whether this system is sufficient to comply with this license's requirements. If you're unsure, ask a lawyer. Once you've verified that this system is acceptable add the license's SPDX identifier to theaccepted
array inscript/licenses/zed-licenses.toml
. - Is
cargo-about
unable to find the license for a dependency? If so, add a clarification field at the end ofscript/licenses/zed-licenses.toml
, as specified in the cargo-about book.