From d1a55d64a8b5e41efc25fc4721f943c22dd9d301 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E5=B0=8F=E7=99=BD?= <364772080@qq.com> Date: Wed, 26 Jun 2024 02:09:08 +0800 Subject: [PATCH] Change `window_min_size` from `Size` to `Option>` (#13501) Now we can set `window_min_size` to `None` instead of `Size::default()`. I think this makes more sense. Release Notes: - N/A --- crates/collab_ui/src/collab_ui.rs | 2 +- crates/gpui/examples/window_positioning.rs | 2 +- crates/gpui/src/platform.rs | 6 +++--- crates/gpui/src/platform/mac/window.rs | 10 ++++++---- crates/zed/src/zed.rs | 4 ++-- 5 files changed, 13 insertions(+), 11 deletions(-) diff --git a/crates/collab_ui/src/collab_ui.rs b/crates/collab_ui/src/collab_ui.rs index 6cf86bbc1a..8dc1cff95c 100644 --- a/crates/collab_ui/src/collab_ui.rs +++ b/crates/collab_ui/src/collab_ui.rs @@ -124,6 +124,6 @@ fn notification_window_options( display_id: Some(screen.id()), window_background: WindowBackgroundAppearance::default(), app_id: Some(app_id.to_owned()), - window_min_size: Size::default(), + window_min_size: None, } } diff --git a/crates/gpui/examples/window_positioning.rs b/crates/gpui/examples/window_positioning.rs index 406ee40f84..b22dc58974 100644 --- a/crates/gpui/examples/window_positioning.rs +++ b/crates/gpui/examples/window_positioning.rs @@ -51,7 +51,7 @@ fn main() { kind: WindowKind::PopUp, is_movable: false, app_id: None, - window_min_size: Size::default(), + window_min_size: None, } }; diff --git a/crates/gpui/src/platform.rs b/crates/gpui/src/platform.rs index 60a82bf1f9..238ccb87d1 100644 --- a/crates/gpui/src/platform.rs +++ b/crates/gpui/src/platform.rs @@ -569,7 +569,7 @@ pub struct WindowOptions { pub app_id: Option, /// Window minimum size - pub window_min_size: Size, + pub window_min_size: Option>, } /// The variables that can be configured when creating a new window @@ -599,7 +599,7 @@ pub(crate) struct WindowParams { pub window_background: WindowBackgroundAppearance, #[cfg_attr(target_os = "linux", allow(dead_code))] - pub window_min_size: Size, + pub window_min_size: Option>, } /// Represents the status of how a window should be opened. @@ -648,7 +648,7 @@ impl Default for WindowOptions { display_id: None, window_background: WindowBackgroundAppearance::default(), app_id: None, - window_min_size: Size::default(), + window_min_size: None, } } } diff --git a/crates/gpui/src/platform/mac/window.rs b/crates/gpui/src/platform/mac/window.rs index 33ea9656e0..419596140f 100644 --- a/crates/gpui/src/platform/mac/window.rs +++ b/crates/gpui/src/platform/mac/window.rs @@ -647,10 +647,12 @@ impl MacWindow { native_window.setMovable_(is_movable as BOOL); - native_window.setContentMinSize_(NSSize { - width: window_min_size.width.to_f64(), - height: window_min_size.height.to_f64(), - }); + if let Some(window_min_size) = window_min_size { + native_window.setContentMinSize_(NSSize { + width: window_min_size.width.to_f64(), + height: window_min_size.height.to_f64(), + }); + } if titlebar.map_or(true, |titlebar| titlebar.appears_transparent) { native_window.setTitlebarAppearsTransparent_(YES); diff --git a/crates/zed/src/zed.rs b/crates/zed/src/zed.rs index 3f205bfb6d..e7f1c7e936 100644 --- a/crates/zed/src/zed.rs +++ b/crates/zed/src/zed.rs @@ -105,10 +105,10 @@ pub fn build_window_options(display_uuid: Option, cx: &mut AppContext) -> display_id: display.map(|display| display.id()), window_background: cx.theme().window_background_appearance(), app_id: Some(app_id.to_owned()), - window_min_size: gpui::Size { + window_min_size: Some(gpui::Size { width: px(360.0), height: px(240.0), - }, + }), } }