Merge pull request #1846 from zed-industries/dont-focus-notification-windows

Antonio Scandurra created

Don't focus incoming call and project shared notification windows

Change summary

crates/collab_ui/src/incoming_call_notification.rs  | 1 +
crates/collab_ui/src/project_shared_notification.rs | 1 +
crates/gpui/src/platform.rs                         | 2 ++
crates/gpui/src/platform/mac/window.rs              | 6 +++++-
crates/zed/src/zed.rs                               | 1 +
5 files changed, 10 insertions(+), 1 deletion(-)

Detailed changes

crates/gpui/src/platform.rs 🔗

@@ -152,6 +152,7 @@ pub struct WindowOptions<'a> {
     pub bounds: WindowBounds,
     pub titlebar: Option<TitlebarOptions<'a>>,
     pub center: bool,
+    pub focus: bool,
     pub kind: WindowKind,
     pub is_movable: bool,
     pub screen: Option<Rc<dyn Screen>>,
@@ -296,6 +297,7 @@ impl<'a> Default for WindowOptions<'a> {
                 traffic_light_position: Default::default(),
             }),
             center: false,
+            focus: true,
             kind: WindowKind::Normal,
             is_movable: true,
             screen: None,

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

@@ -514,7 +514,11 @@ impl Window {
                     );
                 }
             }
-            native_window.makeKeyAndOrderFront_(nil);
+            if options.focus {
+                native_window.makeKeyAndOrderFront_(nil);
+            } else {
+                native_window.orderFront_(nil);
+            }
 
             window.0.borrow().move_traffic_light();
             pool.drain();

crates/zed/src/zed.rs 🔗

@@ -354,6 +354,7 @@ pub fn build_window_options() -> WindowOptions<'static> {
             traffic_light_position: Some(vec2f(8., 8.)),
         }),
         center: false,
+        focus: true,
         kind: WindowKind::Normal,
         is_movable: true,
         screen: None,