Description
Repro
- Apply the following patch to repeat requesting redraw.
diff --git a/winit/examples/window.rs b/winit/examples/window.rs
index f0a8ba9c..9f711890 100644
--- a/winit/examples/window.rs
+++ b/winit/examples/window.rs
@@ -66,7 +66,7 @@ impl ApplicationHandler for App {
buffer.present().expect("Failed to present the softbuffer buffer");
// For contiguous redraw loop you can request a redraw from here.
- // window.request_redraw();
+ surface.window().request_redraw();
},
_ => (),
}
- Run
cargo run --example window. At this point, RedrawRequested log continues to repeat.
- Click the small icon at the left top of the window.
- System popup menu is opened.

- Click the icon again to close the menu.
Expected behavior
The redraw_requested call is not ignored. The expectation is one of the followings:
- the
RedrawRequested log continues to repeat while the menu is shown
- the
RedrawRequested log is pending while the menu is shown and is resumed after the menu is closed
Actual behavior
The RedrawRequested log stopped when the popup menu was opened and was never resumed after the menu was closed. The redraw request loop completely stopped.
The timing of RedrawRequested events is not guaranteed, but they must be eventually emitted because request_redraw queues the event. However in this case the redraw request was ignored and the event was dropped.
Windows version
Microsoft Windows [Version 10.0.26200.8655]
Winit version
HEAD 27e17e3
Description
Repro
cargo run --example window. At this point,RedrawRequestedlog continues to repeat.Expected behavior
The
redraw_requestedcall is not ignored. The expectation is one of the followings:RedrawRequestedlog continues to repeat while the menu is shownRedrawRequestedlog is pending while the menu is shown and is resumed after the menu is closedActual behavior
The
RedrawRequestedlog stopped when the popup menu was opened and was never resumed after the menu was closed. The redraw request loop completely stopped.The timing of
RedrawRequestedevents is not guaranteed, but they must be eventually emitted becauserequest_redrawqueues the event. However in this case the redraw request was ignored and the event was dropped.Windows version
Winit version
HEAD 27e17e3