From 0cbd26f0dae32db38160a82d557017edab8bb632 Mon Sep 17 00:00:00 2001 From: Damien Tardy-Panis Date: Tue, 5 May 2020 18:35:03 +0200 Subject: Add views idle inhibition status in get_tree output Fixes #5286 --- sway/tree/view.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'sway/tree/view.c') diff --git a/sway/tree/view.c b/sway/tree/view.c index 2b4b6c09..8e12a229 100644 --- a/sway/tree/view.c +++ b/sway/tree/view.c @@ -17,6 +17,7 @@ #include "sway/commands.h" #include "sway/desktop.h" #include "sway/desktop/transaction.h" +#include "sway/desktop/idle_inhibit_v1.h" #include "sway/input/cursor.h" #include "sway/ipc-server.h" #include "sway/output.h" @@ -164,6 +165,29 @@ uint32_t view_configure(struct sway_view *view, double lx, double ly, int width, return 0; } +bool view_inhibit_idle(struct sway_view *view) { + struct sway_idle_inhibitor_v1 *user_inhibitor = + sway_idle_inhibit_v1_user_inhibitor_for_view(view); + + struct sway_idle_inhibitor_v1 *application_inhibitor = + sway_idle_inhibit_v1_application_inhibitor_for_view(view); + + if (!user_inhibitor && !application_inhibitor) { + return false; + } + + if (!user_inhibitor) { + return sway_idle_inhibit_v1_is_active(application_inhibitor); + } + + if (!application_inhibitor) { + return sway_idle_inhibit_v1_is_active(user_inhibitor); + } + + return sway_idle_inhibit_v1_is_active(user_inhibitor) + || sway_idle_inhibit_v1_is_active(application_inhibitor); +} + bool view_is_only_visible(struct sway_view *view) { bool only_view = true; struct sway_container *con = view->container; -- cgit v1.2.3-54-g00ecf