egui/tests/egui_tests/tests
Lucas Meurer 0ef57d5a1d Fix `ui.response().interact(Sense::click())` being flakey (#7713)
This fixes calls to `ui.response().interact(Sense::click())` being
flakey. Since egui checks widget interactions at the beginning of the
frame, based on the responses from last frame, we need to ensure that we
always call `create_widget` on `interact` calls, otherwise there can be
a feedback loop where the `Sense` egui acts on flips back and forth
between frames.

Without the fix in `interact`, both the asserts in the new test fail.

Here is a video where I experienced the bug, showing the sense switching
every frame. Every other click would fail to be detected.


https://github.com/user-attachments/assets/6be7ca0e-b50f-4d30-bf87-bbb80c319f3b

Also note, usually it's better to use `UiBuilder::sense()` to give a Ui
some sense, but sometimes you don't have the flexibility, e.g. in a `Ui`
callback from some code external to your project.
2025-11-13 13:53:59 +01:00
..
snapshots Add text edit rtl regression test (#7524) 2025-09-23 11:56:32 +02:00
regression_tests.rs Fix `ui.response().interact(Sense::click())` being flakey (#7713) 2025-11-13 13:53:59 +01:00
test_atoms.rs Set intrinsic size for Label (#7328) 2025-07-10 10:48:14 +02:00
test_sides.rs egui_kittest: more ergonomic functions taking `Impl Into<String>` (#7307) 2025-07-07 13:50:53 +02:00
test_widgets.rs Group AccessKit nodes by `Ui` (#7386) 2025-10-08 11:30:32 +02:00