commit b78c29a83f7e0c637da94b259644cf08376b22ca parent c523a14ae1f82958d42b20e90363f41c7a5f227a Author: Dominique Martinet <asmadeus@codewreck.org> Date: Fri, 8 Jun 2018 21:59:18 +0900 swaylock: fix the displaying of "verified" Displaying verified after damaging state needs more than one roundtrip, so keep looping until surfaces are not dirty anymore Diffstat:
| M | swaylock/password.c | | | 15 | ++++++++++++++- |
1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/swaylock/password.c b/swaylock/password.c @@ -97,7 +97,20 @@ void swaylock_handle_key(struct swaylock_state *state, case XKB_KEY_Return: state->auth_state = AUTH_STATE_VALIDATING; damage_state(state); - wl_display_roundtrip(state->display); + while (wl_display_dispatch(state->display) != -1 && state->run_display) { + bool ok = 1; + struct swaylock_surface *surface; + wl_list_for_each(surface, &state->surfaces, link) { + if (surface->dirty) { + ok = 0; + } + } + if (ok) { + break; + } + } + wl_display_flush(state->display); + if (attempt_password(&state->password)) { state->run_display = false; break;