From 6478ccaaa333d4493fcd813f654ca041ca20e586 Mon Sep 17 00:00:00 2001 From: Kirill Chibisov Date: Tue, 31 Dec 2019 19:53:27 +0300 Subject: Fix high startup time on wlroots compositors --- alacritty/src/display.rs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'alacritty/src') diff --git a/alacritty/src/display.rs b/alacritty/src/display.rs index f64deaed..5e800ed5 100644 --- a/alacritty/src/display.rs +++ b/alacritty/src/display.rs @@ -21,6 +21,8 @@ use std::time::Instant; use glutin::dpi::{PhysicalPosition, PhysicalSize}; use glutin::event::ModifiersState; use glutin::event_loop::EventLoop; +#[cfg(not(any(target_os = "macos", windows)))] +use glutin::platform::unix::EventLoopWindowTargetExtUnix; use glutin::window::CursorIcon; use log::{debug, info}; use parking_lot::MutexGuard; @@ -208,7 +210,14 @@ impl Display { // We should call `clear` when window is offscreen, so when `window.show()` happens it // would be with background color instead of uninitialized surface. - window.swap_buffers(); + #[cfg(not(any(target_os = "macos", windows)))] + { + // On Wayland we can safely ignore this call, since the window isn't visible until you + // actually draw something into it. + if event_loop.is_x11() { + window.swap_buffers() + } + } window.set_visible(true); -- cgit