diff --git a/crates/gpui/src/window.rs b/crates/gpui/src/window.rs index 5778d6ac73..dc357bda80 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; } }