mirror of
https://github.com/zed-industries/zed.git
synced 2025-01-15 14:47:30 +00:00
df00854bbc
We reverted bump to taffy 0.4.3 following an issue spotted by
@maxdeviant where chat text input was not being rendered correctly:
![image](https://github.com/zed-industries/zed/assets/24362066/9d7e6444-47b1-4ac2-808f-bf10404377c0)
This was an issue with the previous attempt to upgrade to taffy 0.4.0 as
well. We bail early in `compute_auto_height_layout` due to a missing
width:
df190ea846/crates/editor/src/element.rs (L5266)
The same issue is visible in story for auto-height editor (or rather,
the breakage is visible - the editor simply does not render at all
there).
I tracked down the breakage to
https://github.com/DioxusLabs/taffy/pull/573 ; it looks like it
specifically affects editors with auto-height. In taffy <0.4 which we
were using previously, we'd eventually get a proper width for
auto-height EditorElement after having initially computed the size. With
taffy 0.4 however (and specifically that PR mentioned earlier), we're
getting `Size::NONE` in layout phase [^1].
I've noticed though that even with taffy <0.3, the
`known_dimensions.width` was always equal to `available_space.width` in
layout phase. Hence, I went with falling back to `available_space.width`
when it is a definite value and we don't have a
`known_dimensions.width`.
Done this way, both chat input and auto-height story render correctly.
/cc @as-cii
Related:
https://github.com/zed-industries/zed/pull/11606
https://github.com/zed-industries/zed/pull/11622
https://github.com/zed-industries/zed/pull/7868
https://github.com/zed-industries/zed/pull/7896
[^1]: This could possibly be related to change in what gets passed in
https://github.com/DioxusLabs/taffy/pull/573/files#diff-60c916e9b0c507925f032cecdde6ae163e41b84b8e4bc0a6c04f7d846b0aad9eR133
, though I'm not sure if editor is a leaf node in this case
Release Notes:
- N/A
144 lines
3.5 KiB
TOML
144 lines
3.5 KiB
TOML
[package]
|
|
name = "gpui"
|
|
version = "0.1.0"
|
|
edition = "2021"
|
|
authors = ["Nathan Sobo <nathan@zed.dev>"]
|
|
description = "Zed's GPU-accelerated UI framework"
|
|
publish = false
|
|
license = "Apache-2.0"
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[features]
|
|
default = []
|
|
test-support = ["backtrace", "collections/test-support", "util/test-support"]
|
|
runtime_shaders = []
|
|
macos-blade = ["blade-graphics", "blade-macros", "bytemuck"]
|
|
|
|
[lib]
|
|
path = "src/gpui.rs"
|
|
doctest = false
|
|
|
|
[dependencies]
|
|
anyhow.workspace = true
|
|
async-task = "4.7"
|
|
backtrace = { version = "0.3", optional = true }
|
|
blade-graphics = { workspace = true, optional = true }
|
|
blade-macros = { workspace = true, optional = true }
|
|
bytemuck = { version = "1", optional = true }
|
|
collections.workspace = true
|
|
ctor.workspace = true
|
|
derive_more.workspace = true
|
|
env_logger.workspace = true
|
|
etagere = "0.2"
|
|
futures.workspace = true
|
|
font-kit = { git = "https://github.com/zed-industries/font-kit", rev = "5a5c4d4" }
|
|
gpui_macros.workspace = true
|
|
image = "0.23"
|
|
itertools.workspace = true
|
|
lazy_static.workspace = true
|
|
linkme = "0.3"
|
|
log.workspace = true
|
|
num_cpus = "1.13"
|
|
parking = "2.0.0"
|
|
parking_lot.workspace = true
|
|
pathfinder_geometry = "0.5"
|
|
postage.workspace = true
|
|
profiling.workspace = true
|
|
rand.workspace = true
|
|
raw-window-handle = "0.6"
|
|
refineable.workspace = true
|
|
resvg = { version = "0.41.0", default-features = false }
|
|
usvg = { version = "0.41.0", default-features = false }
|
|
schemars.workspace = true
|
|
seahash = "4.1"
|
|
semantic_version.workspace = true
|
|
serde.workspace = true
|
|
serde_derive.workspace = true
|
|
serde_json.workspace = true
|
|
slotmap = "1.0.6"
|
|
smallvec.workspace = true
|
|
smol.workspace = true
|
|
sum_tree.workspace = true
|
|
taffy = "0.4.3"
|
|
thiserror.workspace = true
|
|
time.workspace = true
|
|
util.workspace = true
|
|
uuid.workspace = true
|
|
waker-fn = "1.1.0"
|
|
|
|
[dev-dependencies]
|
|
backtrace = "0.3"
|
|
collections = { workspace = true, features = ["test-support"] }
|
|
util = { workspace = true, features = ["test-support"] }
|
|
|
|
[target.'cfg(target_os = "macos")'.build-dependencies]
|
|
bindgen = "0.65.1"
|
|
cbindgen = "0.26.0"
|
|
|
|
[target.'cfg(target_os = "macos")'.dependencies]
|
|
block = "0.1"
|
|
cocoa = "0.25"
|
|
core-foundation.workspace = true
|
|
core-graphics = "0.23"
|
|
core-text = "20.1"
|
|
foreign-types = "0.5"
|
|
log.workspace = true
|
|
media.workspace = true
|
|
metal = "0.25"
|
|
objc = "0.2"
|
|
|
|
[target.'cfg(any(target_os = "linux", target_os = "windows"))'.dependencies]
|
|
flume = "0.11"
|
|
#TODO: use these on all platforms
|
|
blade-graphics.workspace = true
|
|
blade-macros.workspace = true
|
|
bytemuck = "1"
|
|
cosmic-text = "0.11.2"
|
|
copypasta = "0.10.1"
|
|
|
|
[target.'cfg(target_os = "linux")'.dependencies]
|
|
as-raw-xcb-connection = "1"
|
|
ashpd = "0.8.0"
|
|
calloop = "0.12.4"
|
|
calloop-wayland-source = "0.2.0"
|
|
wayland-backend = { version = "0.3.3", features = ["client_system"] }
|
|
wayland-client = { version = "0.31.2" }
|
|
wayland-cursor = "0.31.1"
|
|
wayland-protocols = { version = "0.31.2", features = [
|
|
"client",
|
|
"staging",
|
|
"unstable",
|
|
] }
|
|
wayland-protocols-plasma = { version = "0.2.0", features = ["client"] }
|
|
oo7 = "0.3.0"
|
|
open = "5.1.2"
|
|
filedescriptor = "0.8.2"
|
|
x11rb = { version = "0.13.0", features = [
|
|
"allow-unsafe-code",
|
|
"xkb",
|
|
"randr",
|
|
"xinput",
|
|
"cursor",
|
|
"resource_manager",
|
|
] }
|
|
xkbcommon = { version = "0.7", features = ["wayland", "x11"] }
|
|
|
|
[target.'cfg(windows)'.dependencies]
|
|
windows.workspace = true
|
|
|
|
[target.'cfg(windows)'.build-dependencies]
|
|
embed-resource = "2.4"
|
|
|
|
[[example]]
|
|
name = "hello_world"
|
|
path = "examples/hello_world.rs"
|
|
|
|
[[example]]
|
|
name = "image"
|
|
path = "examples/image/image.rs"
|
|
|
|
[[example]]
|
|
name = "set_menus"
|
|
path = "examples/set_menus.rs"
|