diff --git a/Cargo.lock b/Cargo.lock index bd2fe162..16443431 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -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", diff --git a/crates/ui/src/clipboard.rs b/crates/ui/src/clipboard.rs index 306fff45..87875557 100644 --- a/crates/ui/src/clipboard.rs +++ b/crates/ui/src/clipboard.rs @@ -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); diff --git a/crates/ui/src/dock/stack_panel.rs b/crates/ui/src/dock/stack_panel.rs index 6d80364c..892051df 100644 --- a/crates/ui/src/dock/stack_panel.rs +++ b/crates/ui/src/dock/stack_panel.rs @@ -265,6 +265,8 @@ impl Render for StackPanel { fn render(&mut self, cx: &mut ViewContext) -> impl IntoElement { div() .size_full() + .flex_grow() + .flex_shrink() .overflow_hidden() .bg(cx.theme().tab_bar) .child(self.panel_group.clone()) diff --git a/crates/ui/src/input/input.rs b/crates/ui/src/input/input.rs index 9b4cec5c..d5d866b3 100644 --- a/crates/ui/src/input/input.rs +++ b/crates/ui/src/input/input.rs @@ -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) { @@ -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) { 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); } } diff --git a/crates/ui/src/svg_img.rs b/crates/ui/src/svg_img.rs index 4e774954..17838345 100644 --- a/crates/ui/src/svg_img.rs +++ b/crates/ui/src/svg_img.rs @@ -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, ImageCacheError>; + type Output = Result, ImageCacheError>; fn load( source: Self::Source, - cx: &mut WindowContext, + cx: &mut AppContext, ) -> impl std::future::Future + 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::(&ImageSource { source, size }) { + match cx.use_asset::(&ImageSource { source, size }) { Some(Ok(data)) => Some(data), _ => None, }