diff --git a/crates/gpui/src/platform.rs b/crates/gpui/src/platform.rs index ac397dddcc..104ec71b8d 100644 --- a/crates/gpui/src/platform.rs +++ b/crates/gpui/src/platform.rs @@ -432,6 +432,9 @@ pub(crate) trait PlatformWindow: HasWindowHandle + HasDisplayHandle { Decorations::Server } fn set_app_id(&mut self, _app_id: &str) {} + fn map_window(&mut self) -> anyhow::Result<()> { + Ok(()) + } fn window_controls(&self) -> WindowControls { WindowControls::default() } diff --git a/crates/gpui/src/platform/linux/x11/window.rs b/crates/gpui/src/platform/linux/x11/window.rs index 4ecc1aa2e2..935de8b1d8 100644 --- a/crates/gpui/src/platform/linux/x11/window.rs +++ b/crates/gpui/src/platform/linux/x11/window.rs @@ -590,7 +590,6 @@ impl X11WindowState { BladeRenderer::new(gpu_context, &raw_window, config)? }; - check_reply(|| "X11 MapWindow failed.", xcb.map_window(x_window))?; let display = Rc::new(X11Display::new(xcb, scale_factor, x_screen_index)?); Ok(Self { @@ -1278,6 +1277,14 @@ impl PlatformWindow for X11Window { .unwrap(); } + fn map_window(&mut self) -> anyhow::Result<()> { + check_reply( + || "X11 MapWindow failed.", + self.0.xcb.map_window(self.0.x_window), + )?; + Ok(()) + } + fn set_edited(&mut self, _edited: bool) { log::info!("ignoring macOS specific set_edited"); } diff --git a/crates/gpui/src/window.rs b/crates/gpui/src/window.rs index 3cb84102a7..543f680d98 100644 --- a/crates/gpui/src/window.rs +++ b/crates/gpui/src/window.rs @@ -878,6 +878,8 @@ impl Window { platform_window.set_app_id(&app_id); } + platform_window.map_window().unwrap(); + Ok(Window { handle, invalidator,