diff options
author | emersion <contact@emersion.fr> | 2018-11-24 23:18:44 +0100 |
---|---|---|
committer | emersion <contact@emersion.fr> | 2018-11-24 23:18:44 +0100 |
commit | 41ffb5b4d5cb22b670a34ff441a7e069b7a4d175 (patch) | |
tree | 14670abb7b22f90aa5df466e67134c5fe7c35b74 /swayidle/main.c | |
parent | swaylock: fix display_event to not block (diff) | |
download | sway-41ffb5b4d5cb22b670a34ff441a7e069b7a4d175.tar.gz sway-41ffb5b4d5cb22b670a34ff441a7e069b7a4d175.tar.zst sway-41ffb5b4d5cb22b670a34ff441a7e069b7a4d175.zip |
swayidle: listen when display becomes writable
Diffstat (limited to 'swayidle/main.c')
-rw-r--r-- | swayidle/main.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/swayidle/main.c b/swayidle/main.c index 2e202ce1..ab4b4596 100644 --- a/swayidle/main.c +++ b/swayidle/main.c | |||
@@ -373,7 +373,11 @@ static int display_event(int fd, uint32_t mask, void *data) { | |||
373 | int count = 0; | 373 | int count = 0; |
374 | if (mask & WL_EVENT_READABLE) { | 374 | if (mask & WL_EVENT_READABLE) { |
375 | count = wl_display_dispatch(state.display); | 375 | count = wl_display_dispatch(state.display); |
376 | } else { | 376 | } |
377 | if (mask & WL_EVENT_WRITABLE) { | ||
378 | wl_display_flush(state.display); | ||
379 | } | ||
380 | if (mask == 0) { | ||
377 | count = wl_display_dispatch_pending(state.display); | 381 | count = wl_display_dispatch_pending(state.display); |
378 | wl_display_flush(state.display); | 382 | wl_display_flush(state.display); |
379 | } | 383 | } |
@@ -438,7 +442,7 @@ int main(int argc, char *argv[]) { | |||
438 | wl_display_roundtrip(state.display); | 442 | wl_display_roundtrip(state.display); |
439 | 443 | ||
440 | struct wl_event_source *source = wl_event_loop_add_fd(state.event_loop, | 444 | struct wl_event_source *source = wl_event_loop_add_fd(state.event_loop, |
441 | wl_display_get_fd(state.display), WL_EVENT_READABLE, | 445 | wl_display_get_fd(state.display), WL_EVENT_READABLE | WL_EVENT_WRITABLE, |
442 | display_event, NULL); | 446 | display_event, NULL); |
443 | wl_event_source_check(source); | 447 | wl_event_source_check(source); |
444 | 448 | ||