From cfee3932340d8c86213a3c7679315fad17ffdbf7 Mon Sep 17 00:00:00 2001 From: Mattias Eriksson Date: Fri, 27 Apr 2018 09:09:19 +0200 Subject: [PATCH] Release lock --- sway/idle.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/sway/idle.c b/sway/idle.c index 82e545185..44a80c7a1 100644 --- a/sway/idle.c +++ b/sway/idle.c @@ -57,11 +57,11 @@ bool have_lock() { return false; } -static int fd = 0; +static int fd = -1; static int inhibit_cnt=0; static int cleanup_inhibit(void *data) { - fd = 0; + fd = -1; inhibit_cnt=0; wlr_log(L_DEBUG, "Cleanup inhibit"); return 0; @@ -72,6 +72,8 @@ static void prepare_for_sleep(struct wlr_session *session, void *data) { wlr_log(L_INFO, "PrepareForSleep signal received"); if(have_lock()) { wlr_log(L_INFO, "Have lock, no inhibit"); + if (fd >= 0) + close(fd); //Release lock cleanup_inhibit(NULL); return; } @@ -83,7 +85,7 @@ static void prepare_for_sleep(struct wlr_session *session, void *data) { wlr_log(L_INFO, "No lock, will inhibit"); - wlr_session_inhibit_sleep(session); + fd = wlr_session_inhibit_sleep(session); if (!inhibit_cnt) { invoke_swaylock();