Show workspace only after initializing it

Antonio Scandurra created

Change summary

crates/collab_ui/src/incoming_call_notification.rs  | 1 +
crates/collab_ui/src/project_shared_notification.rs | 1 +
crates/copilot/src/sign_in.rs                       | 1 +
crates/gpui/src/platform.rs                         | 2 ++
crates/gpui/src/platform/mac/window.rs              | 2 +-
crates/workspace/src/workspace.rs                   | 2 ++
crates/zed/src/zed.rs                               | 3 ++-
7 files changed, 10 insertions(+), 2 deletions(-)

Detailed changes

crates/copilot/src/sign_in.rs 🔗

@@ -74,6 +74,7 @@ fn create_copilot_auth_window(
         titlebar: None,
         center: true,
         focus: true,
+        show: true,
         kind: WindowKind::Normal,
         is_movable: true,
         screen: None,

crates/gpui/src/platform.rs 🔗

@@ -173,6 +173,7 @@ pub struct WindowOptions<'a> {
     pub titlebar: Option<TitlebarOptions<'a>>,
     pub center: bool,
     pub focus: bool,
+    pub show: bool,
     pub kind: WindowKind,
     pub is_movable: bool,
     pub screen: Option<Rc<dyn Screen>>,
@@ -376,6 +377,7 @@ impl<'a> Default for WindowOptions<'a> {
             }),
             center: false,
             focus: true,
+            show: true,
             kind: WindowKind::Normal,
             is_movable: true,
             screen: None,

crates/gpui/src/platform/mac/window.rs 🔗

@@ -614,7 +614,7 @@ impl Window {
             }
             if options.focus {
                 native_window.makeKeyAndOrderFront_(nil);
-            } else {
+            } else if options.show {
                 native_window.orderFront_(nil);
             }
 

crates/workspace/src/workspace.rs 🔗

@@ -805,6 +805,8 @@ impl Workspace {
             .await
             .log_err();
 
+            cx.update_window(workspace.window_id(), |cx| cx.activate_window());
+
             let workspace = workspace.downgrade();
             notify_if_database_failed(&workspace, &mut cx);
 

crates/zed/src/zed.rs 🔗

@@ -398,7 +398,8 @@ pub fn build_window_options(
             traffic_light_position: Some(vec2f(8., 8.)),
         }),
         center: false,
-        focus: true,
+        focus: false,
+        show: false,
         kind: WindowKind::Normal,
         is_movable: true,
         bounds,