Update Parley and AccessKit (#1172)

This commit is contained in:
Matt Campbell 2025-07-17 15:47:24 +02:00 committed by GitHub
parent 3b68c2ee39
commit 68dff90ead
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
9 changed files with 49 additions and 50 deletions

57
Cargo.lock generated
View File

@ -20,15 +20,15 @@ checksum = "c71b1793ee61086797f5c80b6efa2b8ffa6d5dd703f118545808a7f2e27f7046"
[[package]]
name = "accesskit"
version = "0.19.0"
version = "0.21.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e25ae84c0260bdf5df07796d7cc4882460de26a2b406ec0e6c42461a723b271b"
checksum = "9c0690ad6e6f9597b8439bd3c95e8c6df5cd043afd950c6d68f3b37df641e27c"
[[package]]
name = "accesskit_atspi_common"
version = "0.12.0"
version = "0.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "29bd41de2e54451a8ca0dd95ebf45b54d349d29ebceb7f20be264eee14e3d477"
checksum = "8fb511e093896d3cae0efba40322087dff59ea322308a3e6edf70f28d22f2607"
dependencies = [
"accesskit",
"accesskit_consumer",
@ -40,9 +40,9 @@ dependencies = [
[[package]]
name = "accesskit_consumer"
version = "0.28.0"
version = "0.30.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8bfae7c152994a31dc7d99b8eeac7784a919f71d1b306f4b83217e110fd3824c"
checksum = "ec27574c1baeb7747c802a194566b46b602461e81dc4957949580ea8da695038"
dependencies = [
"accesskit",
"hashbrown",
@ -50,9 +50,9 @@ dependencies = [
[[package]]
name = "accesskit_macos"
version = "0.20.0"
version = "0.22.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "692dd318ff8a7a0ffda67271c4bd10cf32249656f4e49390db0b26ca92b095f2"
checksum = "bf962bfd305aed21133d06128ab3f4a6412031a5b8505534d55af869788af272"
dependencies = [
"accesskit",
"accesskit_consumer",
@ -64,9 +64,9 @@ dependencies = [
[[package]]
name = "accesskit_unix"
version = "0.15.0"
version = "0.17.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c5f7474c36606d0fe4f438291d667bae7042ea2760f506650ad2366926358fc8"
checksum = "2abbfb16144cca5bb2ea6acad5865b7c1e70d4fa171ceba1a52ea8e78a7515f4"
dependencies = [
"accesskit",
"accesskit_atspi_common",
@ -82,9 +82,9 @@ dependencies = [
[[package]]
name = "accesskit_windows"
version = "0.27.0"
version = "0.29.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "70a042b62c9c05bf7b616f015515c17d2813f3ba89978d6f4fc369735d60700a"
checksum = "e4cd727229c389e32c1a78fe9f74dc62d7c9fb6eac98cfa1a17efde254fb2d98"
dependencies = [
"accesskit",
"accesskit_consumer",
@ -96,9 +96,9 @@ dependencies = [
[[package]]
name = "accesskit_winit"
version = "0.27.0"
version = "0.29.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5c1f0d3d13113d8857542a4f8d1a1c24d1dc1527b77aee8426127f4901588708"
checksum = "822493d0e54e6793da77525bb7235a19e4fef8418194aaf25a988bc93740d683"
dependencies = [
"accesskit",
"accesskit_macos",
@ -1087,24 +1087,12 @@ dependencies = [
"bytemuck",
]
[[package]]
name = "fontconfig-cache-parser"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a7f8afb20c8069fd676d27b214559a337cc619a605d25a87baa90b49a06f3b18"
dependencies = [
"bytemuck",
"thiserror 1.0.69",
]
[[package]]
name = "fontique"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "39f97079e1293b8c1e9fb03a2875d328bd2ee8f3b95ce62959c0acc04049c708"
source = "git+https://github.com/linebender/parley?rev=587b7634ae8601c10de7f0361bfd56085a5b7b4e#587b7634ae8601c10de7f0361bfd56085a5b7b4e"
dependencies = [
"bytemuck",
"fontconfig-cache-parser",
"hashbrown",
"icu_locid",
"memmap2",
@ -1118,6 +1106,7 @@ dependencies = [
"smallvec",
"windows 0.58.0",
"windows-core 0.58.0",
"yeslogic-fontconfig-sys",
]
[[package]]
@ -2829,8 +2818,7 @@ dependencies = [
[[package]]
name = "parley"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "13e57638545cf2ba4c3e72cc5715e53b1880b829cc3dbefda3d1700c58efe723"
source = "git+https://github.com/linebender/parley?rev=587b7634ae8601c10de7f0361bfd56085a5b7b4e#587b7634ae8601c10de7f0361bfd56085a5b7b4e"
dependencies = [
"accesskit",
"fontique",
@ -5709,6 +5697,17 @@ version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e01738255b5a16e78bbb83e7fbba0a1e7dd506905cfc53f4622d89015a03fbb5"
[[package]]
name = "yeslogic-fontconfig-sys"
version = "6.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "503a066b4c037c440169d995b869046827dbc71263f6e8f3be6d77d4f3229dbd"
dependencies = [
"dlib",
"once_cell",
"pkg-config",
]
[[package]]
name = "yoke"
version = "0.8.0"

View File

@ -49,7 +49,9 @@ tree_arena = { version = "0.1.0", path = "tree_arena" }
anymore = { version = "0.1.0", git = "https://github.com/linebender/anymore", rev = "3537bdc3aa03c92e380f106d18b7957b934c9eb5" }
vello = "0.5.0"
kurbo = "0.11.2"
parley = { version = "0.5.0", features = ["accesskit"] }
parley = { git = "https://github.com/linebender/parley", rev = "587b7634ae8601c10de7f0361bfd56085a5b7b4e", features = [
"accesskit",
] }
peniko = "0.4.0"
winit = "0.30.10"
tracing = { version = "0.1.41", default-features = false }
@ -61,9 +63,9 @@ dpi = "0.1.2"
image = { version = "0.25.6", default-features = false }
web-time = "1.1.0"
bitflags = "2.9.1"
accesskit = "0.19.0"
accesskit_winit = "0.27.0"
accesskit_consumer = "0.28.0"
accesskit = "0.21.0"
accesskit_winit = "0.29.0"
accesskit_consumer = "0.30.0"
time = "0.3.41"
reqwest = { version = "0.12.20", default-features = false, features = [
# We use rustls as Android doesn't ship with openssl

View File

@ -493,7 +493,7 @@ mod tests {
.with_style(FontFamily::Generic(GenericFamily::Monospace))
.with_style(StyleProperty::FontSize(20.0))
.with_line_break_mode(LineBreaking::WordWrap)
.with_text_alignment(TextAlign::Middle);
.with_text_alignment(TextAlign::Center);
let mut harness =
TestHarness::create_with_size(default_property_set(), label, Size::new(200.0, 200.0));
@ -535,10 +535,10 @@ mod tests {
.with_line_break_mode(LineBreaking::WordWrap)
}
let label1 = base_label().with_text_alignment(TextAlign::Start);
let label2 = base_label().with_text_alignment(TextAlign::Middle);
let label2 = base_label().with_text_alignment(TextAlign::Center);
let label3 = base_label().with_text_alignment(TextAlign::End);
let label4 = base_label().with_text_alignment(TextAlign::Start);
let label5 = base_label().with_text_alignment(TextAlign::Middle);
let label5 = base_label().with_text_alignment(TextAlign::Center);
let label6 = base_label().with_text_alignment(TextAlign::End);
let flex = Flex::column()
.with_flex_child(label1, CrossAxisAlignment::Start)
@ -599,7 +599,7 @@ mod tests {
.with_style(FontFamily::Generic(GenericFamily::Monospace))
.with_style(StyleProperty::FontSize(20.0))
.with_line_break_mode(LineBreaking::WordWrap)
.with_text_alignment(TextAlign::Middle);
.with_text_alignment(TextAlign::Center);
let mut harness =
TestHarness::create_with_size(default_property_set(), label, Size::new(50.0, 50.0));
@ -622,7 +622,7 @@ mod tests {
Label::insert_style(&mut label, FontFamily::Generic(GenericFamily::Monospace));
Label::insert_style(&mut label, StyleProperty::FontSize(20.0));
Label::set_line_break_mode(&mut label, LineBreaking::WordWrap);
Label::set_text_alignment(&mut label, TextAlign::Middle);
Label::set_text_alignment(&mut label, TextAlign::Center);
});
harness.render()

View File

@ -230,10 +230,10 @@ mod tests {
)
}
let prose1 = base_prose(TextAlign::Start);
let prose2 = base_prose(TextAlign::Middle);
let prose2 = base_prose(TextAlign::Center);
let prose3 = base_prose(TextAlign::End);
let prose4 = base_prose(TextAlign::Start);
let prose5 = base_prose(TextAlign::Middle);
let prose5 = base_prose(TextAlign::Center);
let prose6 = base_prose(TextAlign::End);
let flex = Flex::column()
.with_flex_child(prose1, CrossAxisAlignment::Start)

View File

@ -229,9 +229,7 @@ impl AccessEvent {
accesskit::Action::HideTooltip => "HideTooltip",
accesskit::Action::ShowTooltip => "ShowTooltip",
accesskit::Action::ReplaceSelectedText => "ReplaceSelectedText",
accesskit::Action::ScrollBackward => "ScrollBackward",
accesskit::Action::ScrollDown => "ScrollDown",
accesskit::Action::ScrollForward => "ScrollForward",
accesskit::Action::ScrollLeft => "ScrollLeft",
accesskit::Action::ScrollRight => "ScrollRight",
accesskit::Action::ScrollUp => "ScrollUp",

View File

@ -58,7 +58,7 @@ fn make_grid(grid_spacing: f64) -> Grid {
let label = Prose::from_text_area(
TextArea::new_immutable("Change spacing by right and left clicking on the buttons")
.with_style(StyleProperty::FontSize(14.0))
.with_text_alignment(TextAlign::Middle),
.with_text_alignment(TextAlign::Center),
);
let label = SizedBox::new(label);

View File

@ -63,7 +63,7 @@ fn picker(data: &mut EmojiPagination) -> impl WidgetView<EmojiPagination> + use<
},
))
.expand_width(),
sized_box(prose(emoji.name).text_alignment(TextAlign::Middle).brush(
sized_box(prose(emoji.name).text_alignment(TextAlign::Center).brush(
if data.last_selected.is_some_and(|it| it == idx) {
// TODO: Ensure this selection indicator color is accessible
// TODO: Expose selected state to accessibility tree

View File

@ -71,14 +71,14 @@ impl HttpCats {
prose(format!(
"Status code {selected_code} selected, but this was not found."
))
.text_alignment(TextAlign::Middle)
.text_alignment(TextAlign::Center)
.brush(palette::css::YELLOW),
)
}
} else {
OneOf3::C(
prose("No selection yet made. Select an item from the sidebar to continue.")
.text_alignment(TextAlign::Middle),
.text_alignment(TextAlign::Center),
)
};
@ -174,7 +174,7 @@ impl Status {
let image = match &self.image {
ImageState::NotRequested => OneOf3::A(
prose("Failed to start fetching image. This is a bug!")
.text_alignment(TextAlign::Middle),
.text_alignment(TextAlign::Center),
),
ImageState::Pending => OneOf3::B(sized_box(spinner()).width(80.).height(80.)),
// TODO: Alt text?
@ -202,10 +202,10 @@ impl Status {
}
};
flex((
prose(format!("HTTP Status Code: {}", self.code)).text_alignment(TextAlign::Middle),
prose(format!("HTTP Status Code: {}", self.code)).text_alignment(TextAlign::Center),
prose(self.message)
.text_size(20.)
.text_alignment(TextAlign::Middle),
.text_alignment(TextAlign::Center),
FlexSpacer::Fixed(10.),
image,
))

View File

@ -104,7 +104,7 @@ fn app_logic(data: &mut AppData) -> impl WidgetView<AppData> + use<> {
// Manually adding a direction is equivalent to using flex_row
.direction(Axis::Horizontal),
prose(LOREM)
.text_alignment(TextAlign::Middle)
.text_alignment(TextAlign::Center)
.text_size(18.),
button_any_pointer(button_label, |data: &mut AppData, button| match button {
None => {