diff --git a/crates/gpui/src/window.rs b/crates/gpui/src/window.rs index 5778d6ac7372f4b13f14d4fa7d0ebca54a03fd1d..dc357bda80f4329a1ae5b9894ea329c44e483475 100644 --- a/crates/gpui/src/window.rs +++ b/crates/gpui/src/window.rs @@ -1232,6 +1232,13 @@ impl Window { if let Some(last_frame) = last_frame_time.get() && now.duration_since(last_frame) < min_interval { + // Must still complete the frame on platforms that require it. + // On Wayland, `surface.frame()` was already called to request the + // next frame callback, so we must call `surface.commit()` (via + // `complete_frame`) or the compositor won't send another callback. + handle + .update(&mut cx, |_, window, _| window.complete_frame()) + .log_err(); return; } }