Upgrade GPUI. (#173)

This commit is contained in:
Jason Lee 2024-08-23 18:43:26 +08:00 committed by GitHub
parent c5c8e46ac7
commit 72b8290945
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 59 additions and 29 deletions

60
Cargo.lock generated
View file

@ -579,7 +579,7 @@ checksum = "3dcde5f311c85b8ca30c2e4198d4326bc342c76541590106f5fa4a50946ea499"
[[package]]
name = "blade-graphics"
version = "0.4.0"
source = "git+https://github.com/kvark/blade?rev=ac25c77ed8d86c386a541c935ffe0a0f6024e701#ac25c77ed8d86c386a541c935ffe0a0f6024e701"
source = "git+https://github.com/kvark/blade?rev=7f54ddfc001edc48225e6602d3c38ebb855421aa#7f54ddfc001edc48225e6602d3c38ebb855421aa"
dependencies = [
"ash",
"ash-window",
@ -609,7 +609,7 @@ dependencies = [
[[package]]
name = "blade-macros"
version = "0.2.1"
source = "git+https://github.com/kvark/blade?rev=ac25c77ed8d86c386a541c935ffe0a0f6024e701#ac25c77ed8d86c386a541c935ffe0a0f6024e701"
source = "git+https://github.com/kvark/blade?rev=7f54ddfc001edc48225e6602d3c38ebb855421aa#7f54ddfc001edc48225e6602d3c38ebb855421aa"
dependencies = [
"proc-macro2",
"quote",
@ -619,7 +619,7 @@ dependencies = [
[[package]]
name = "blade-util"
version = "0.1.0"
source = "git+https://github.com/kvark/blade?rev=ac25c77ed8d86c386a541c935ffe0a0f6024e701#ac25c77ed8d86c386a541c935ffe0a0f6024e701"
source = "git+https://github.com/kvark/blade?rev=7f54ddfc001edc48225e6602d3c38ebb855421aa#7f54ddfc001edc48225e6602d3c38ebb855421aa"
dependencies = [
"blade-graphics",
"bytemuck",
@ -966,7 +966,7 @@ dependencies = [
[[package]]
name = "collections"
version = "0.1.0"
source = "git+https://github.com/huacnlee/zed.git?branch=export-platform-window#a0bd2bbfaf25ed71c81743438cbaa8050aa48b09"
source = "git+https://github.com/huacnlee/zed.git?branch=export-platform-window#f5eecd7d1c1a4d6fe3a09efd0a08738ef1248121"
dependencies = [
"rustc-hash",
]
@ -1279,7 +1279,7 @@ dependencies = [
[[package]]
name = "derive_refineable"
version = "0.1.0"
source = "git+https://github.com/huacnlee/zed.git?branch=export-platform-window#a0bd2bbfaf25ed71c81743438cbaa8050aa48b09"
source = "git+https://github.com/huacnlee/zed.git?branch=export-platform-window#f5eecd7d1c1a4d6fe3a09efd0a08738ef1248121"
dependencies = [
"proc-macro2",
"quote",
@ -2230,7 +2230,7 @@ dependencies = [
[[package]]
name = "gpui"
version = "0.1.0"
source = "git+https://github.com/huacnlee/zed.git?branch=export-platform-window#a0bd2bbfaf25ed71c81743438cbaa8050aa48b09"
source = "git+https://github.com/huacnlee/zed.git?branch=export-platform-window#f5eecd7d1c1a4d6fe3a09efd0a08738ef1248121"
dependencies = [
"anyhow",
"as-raw-xcb-connection",
@ -2266,7 +2266,6 @@ dependencies = [
"http_client",
"image",
"itertools 0.11.0",
"lazy_static",
"linkme",
"log",
"media",
@ -2293,6 +2292,7 @@ dependencies = [
"slotmap",
"smallvec",
"smol",
"strum",
"sum_tree",
"taffy",
"thiserror",
@ -2331,7 +2331,7 @@ dependencies = [
[[package]]
name = "gpui_macros"
version = "0.1.0"
source = "git+https://github.com/huacnlee/zed.git?branch=export-platform-window#a0bd2bbfaf25ed71c81743438cbaa8050aa48b09"
source = "git+https://github.com/huacnlee/zed.git?branch=export-platform-window#f5eecd7d1c1a4d6fe3a09efd0a08738ef1248121"
dependencies = [
"proc-macro2",
"quote",
@ -2535,7 +2535,7 @@ dependencies = [
[[package]]
name = "http_client"
version = "0.1.0"
source = "git+https://github.com/huacnlee/zed.git?branch=export-platform-window#a0bd2bbfaf25ed71c81743438cbaa8050aa48b09"
source = "git+https://github.com/huacnlee/zed.git?branch=export-platform-window#f5eecd7d1c1a4d6fe3a09efd0a08738ef1248121"
dependencies = [
"anyhow",
"derive_more",
@ -2863,9 +2863,9 @@ dependencies = [
[[package]]
name = "khronos-egl"
version = "5.0.0"
version = "6.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d1382b16c04aeb821453d6215a3c80ba78f24c6595c5aa85653378aabe0c83e3"
checksum = "6aae1df220ece3c0ada96b8153459b67eebe9ae9212258bb0134ae60416fdf76"
dependencies = [
"libc",
"libloading",
@ -3095,7 +3095,7 @@ dependencies = [
[[package]]
name = "media"
version = "0.1.0"
source = "git+https://github.com/huacnlee/zed.git?branch=export-platform-window#a0bd2bbfaf25ed71c81743438cbaa8050aa48b09"
source = "git+https://github.com/huacnlee/zed.git?branch=export-platform-window#f5eecd7d1c1a4d6fe3a09efd0a08738ef1248121"
dependencies = [
"anyhow",
"bindgen",
@ -4214,7 +4214,7 @@ dependencies = [
[[package]]
name = "refineable"
version = "0.1.0"
source = "git+https://github.com/huacnlee/zed.git?branch=export-platform-window#a0bd2bbfaf25ed71c81743438cbaa8050aa48b09"
source = "git+https://github.com/huacnlee/zed.git?branch=export-platform-window#f5eecd7d1c1a4d6fe3a09efd0a08738ef1248121"
dependencies = [
"derive_refineable",
]
@ -4408,6 +4408,12 @@ dependencies = [
"windows-sys 0.52.0",
]
[[package]]
name = "rustversion"
version = "1.0.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6"
[[package]]
name = "rustybuzz"
version = "0.14.1"
@ -4543,7 +4549,7 @@ checksum = "d369a96f978623eb3dc28807c4852d6cc617fed53da5d3c400feff1ef34a714a"
[[package]]
name = "semantic_version"
version = "0.1.0"
source = "git+https://github.com/huacnlee/zed.git?branch=export-platform-window#a0bd2bbfaf25ed71c81743438cbaa8050aa48b09"
source = "git+https://github.com/huacnlee/zed.git?branch=export-platform-window#f5eecd7d1c1a4d6fe3a09efd0a08738ef1248121"
dependencies = [
"anyhow",
"serde",
@ -4952,6 +4958,28 @@ dependencies = [
"quote",
]
[[package]]
name = "strum"
version = "0.25.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125"
dependencies = [
"strum_macros",
]
[[package]]
name = "strum_macros"
version = "0.25.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0"
dependencies = [
"heck 0.4.1",
"proc-macro2",
"quote",
"rustversion",
"syn 2.0.71",
]
[[package]]
name = "substring"
version = "1.4.5"
@ -4970,7 +4998,7 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292"
[[package]]
name = "sum_tree"
version = "0.1.0"
source = "git+https://github.com/huacnlee/zed.git?branch=export-platform-window#a0bd2bbfaf25ed71c81743438cbaa8050aa48b09"
source = "git+https://github.com/huacnlee/zed.git?branch=export-platform-window#f5eecd7d1c1a4d6fe3a09efd0a08738ef1248121"
dependencies = [
"arrayvec",
"log",
@ -5634,7 +5662,7 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821"
[[package]]
name = "util"
version = "0.1.0"
source = "git+https://github.com/huacnlee/zed.git?branch=export-platform-window#a0bd2bbfaf25ed71c81743438cbaa8050aa48b09"
source = "git+https://github.com/huacnlee/zed.git?branch=export-platform-window#f5eecd7d1c1a4d6fe3a09efd0a08738ef1248121"
dependencies = [
"anyhow",
"async-fs 1.6.0",

View file

@ -61,7 +61,7 @@ impl RenderOnce for Clipboard {
.xsmall()
.on_click(move |_, cx| {
cx.stop_propagation();
cx.write_to_clipboard(ClipboardItem::new(self.value.to_string()));
cx.write_to_clipboard(ClipboardItem::new_string(self.value.to_string()));
if let Some(copied) = &self.copied_callback {
copied(self.value.clone(), cx);

View file

@ -265,6 +265,8 @@ impl Render for StackPanel {
fn render(&mut self, cx: &mut ViewContext<Self>) -> impl IntoElement {
div()
.size_full()
.flex_grow()
.flex_shrink()
.overflow_hidden()
.bg(cx.theme().tab_bar)
.child(self.panel_group.clone())

View file

@ -415,7 +415,7 @@ impl TextInput {
}
let selected_text = self.text[self.selected_range.clone()].to_string();
cx.write_to_clipboard(ClipboardItem::new(selected_text));
cx.write_to_clipboard(ClipboardItem::new_string(selected_text));
}
fn cut(&mut self, _: &Cut, cx: &mut ViewContext<Self>) {
@ -424,13 +424,13 @@ impl TextInput {
}
let selected_text = self.text[self.selected_range.clone()].to_string();
cx.write_to_clipboard(ClipboardItem::new(selected_text));
cx.write_to_clipboard(ClipboardItem::new_string(selected_text));
self.replace_text_in_range(None, "", cx);
}
fn paste(&mut self, _: &Paste, cx: &mut ViewContext<Self>) {
if let Some(clipboard) = cx.read_from_clipboard() {
let new_text = clipboard.text().replace('\n', "");
let new_text = clipboard.text().unwrap_or_default().replace('\n', "");
self.replace_text_in_range(None, &new_text, cx);
}
}

View file

@ -1,9 +1,9 @@
use std::{hash::Hash, ops::Deref, sync::Arc};
use gpui::{
px, size, Asset, Bounds, Element, Hitbox, ImageCacheError, ImageData, InteractiveElement,
Interactivity, IntoElement, IsZero, Pixels, SharedString, Size, StyleRefinement, Styled,
WindowContext,
px, size, AppContext, Asset, Bounds, Element, Hitbox, ImageCacheError, InteractiveElement,
Interactivity, IntoElement, IsZero, Pixels, RenderImage, SharedString, Size, StyleRefinement,
Styled, WindowContext,
};
use image::Frame;
use smallvec::SmallVec;
@ -69,13 +69,13 @@ impl Hash for ImageSource {
impl Asset for Image {
type Source = ImageSource;
type Output = Result<Arc<ImageData>, ImageCacheError>;
type Output = Result<Arc<RenderImage>, ImageCacheError>;
fn load(
source: Self::Source,
cx: &mut WindowContext,
cx: &mut AppContext,
) -> impl std::future::Future<Output = Self::Output> + Send + 'static {
let scale = cx.scale_factor();
let scale = 2.;
let asset_source = cx.asset_source().clone();
async move {
@ -84,7 +84,7 @@ impl Asset for Image {
return Err(usvg::Error::InvalidSize.into());
}
let size = Size {
width: (size.width * scale).ceil(),
width: (size.width * 2).ceil(),
height: (size.height * scale).ceil(),
};
@ -126,7 +126,7 @@ impl Asset for Image {
pixel.swap(0, 2);
}
Ok(Arc::new(ImageData::new(SmallVec::from_elem(
Ok(Arc::new(RenderImage::new(SmallVec::from_elem(
Frame::new(buffer),
1,
))))
@ -227,7 +227,7 @@ impl Element for SvgImg {
let size = self.size;
let data = if let Some(source) = source {
match cx.use_cached_asset::<Image>(&ImageSource { source, size }) {
match cx.use_asset::<Image>(&ImageSource { source, size }) {
Some(Ok(data)) => Some(data),
_ => None,
}