From e4bfb3bc98b28cb083b4138a76d88384a33d6e57 Mon Sep 17 00:00:00 2001 From: Dominique Martinet Date: Wed, 27 Jun 2018 18:16:49 +0900 Subject: Add idle inhibit unstable v1 support --- include/sway/desktop/idle_inhibit_v1.h | 13 +++++++++++++ include/sway/server.h | 5 +++++ 2 files changed, 18 insertions(+) create mode 100644 include/sway/desktop/idle_inhibit_v1.h (limited to 'include') diff --git a/include/sway/desktop/idle_inhibit_v1.h b/include/sway/desktop/idle_inhibit_v1.h new file mode 100644 index 00000000..94c25a42 --- /dev/null +++ b/include/sway/desktop/idle_inhibit_v1.h @@ -0,0 +1,13 @@ + +#ifndef _SWAY_DESKTOP_IDLE_INHIBIT_V1_H +#define _SWAY_DESKTOP_IDLE_INHIBIT_V1_H +#include +#include "sway/server.h" + +struct sway_idle_inhibitor_v1 { + struct sway_server *server; + + struct wl_listener destroy; +}; + +#endif diff --git a/include/sway/server.h b/include/sway/server.h index 1e1aa3cc..246a9381 100644 --- a/include/sway/server.h +++ b/include/sway/server.h @@ -24,11 +24,15 @@ struct sway_server { struct wlr_compositor *compositor; struct wlr_data_device_manager *data_device_manager; struct wlr_idle *idle; + struct wlr_idle_inhibit_manager_v1 *idle_inhibit; struct sway_input_manager *input; struct wl_listener new_output; + struct wlr_idle_inhibit_manager_v1 *idle_inhibit_v1; + struct wl_listener new_idle_inhibitor_v1; + struct wlr_layer_shell *layer_shell; struct wl_listener layer_shell_surface; @@ -61,6 +65,7 @@ void server_run(struct sway_server *server); void handle_new_output(struct wl_listener *listener, void *data); +void handle_idle_inhibitor_v1(struct wl_listener *listener, void *data); void handle_layer_shell_surface(struct wl_listener *listener, void *data); void handle_xdg_shell_v6_surface(struct wl_listener *listener, void *data); void handle_xdg_shell_surface(struct wl_listener *listener, void *data); -- cgit v1.2.3 From 072b334abc6f065080bf944767bbd53d7a590e47 Mon Sep 17 00:00:00 2001 From: Dominique Martinet Date: Sat, 30 Jun 2018 14:09:32 +0900 Subject: idle_inhibit: stop inhibitor when views become invisible --- include/sway/desktop/idle_inhibit_v1.h | 4 ++++ include/sway/server.h | 1 + 2 files changed, 5 insertions(+) (limited to 'include') diff --git a/include/sway/desktop/idle_inhibit_v1.h b/include/sway/desktop/idle_inhibit_v1.h index 94c25a42..1764713c 100644 --- a/include/sway/desktop/idle_inhibit_v1.h +++ b/include/sway/desktop/idle_inhibit_v1.h @@ -6,8 +6,12 @@ struct sway_idle_inhibitor_v1 { struct sway_server *server; + struct sway_view *view; + struct wl_list link; struct wl_listener destroy; }; +void idle_inhibit_v1_check_active(struct sway_server *server); + #endif diff --git a/include/sway/server.h b/include/sway/server.h index 246a9381..693e6b82 100644 --- a/include/sway/server.h +++ b/include/sway/server.h @@ -32,6 +32,7 @@ struct sway_server { struct wlr_idle_inhibit_manager_v1 *idle_inhibit_v1; struct wl_listener new_idle_inhibitor_v1; + struct wl_list idle_inhibitors_v1; struct wlr_layer_shell *layer_shell; struct wl_listener layer_shell_surface; -- cgit v1.2.3 From 71224781c48f98f43f5836de663ef6e01604419c Mon Sep 17 00:00:00 2001 From: Dominique Martinet Date: Mon, 2 Jul 2018 09:26:57 +0900 Subject: idle_inhibit: move server data to its own struct --- include/sway/desktop/idle_inhibit_v1.h | 17 ++++++++++++++--- include/sway/server.h | 7 ++----- 2 files changed, 16 insertions(+), 8 deletions(-) (limited to 'include') diff --git a/include/sway/desktop/idle_inhibit_v1.h b/include/sway/desktop/idle_inhibit_v1.h index 1764713c..e5ed8a3d 100644 --- a/include/sway/desktop/idle_inhibit_v1.h +++ b/include/sway/desktop/idle_inhibit_v1.h @@ -1,17 +1,28 @@ - #ifndef _SWAY_DESKTOP_IDLE_INHIBIT_V1_H #define _SWAY_DESKTOP_IDLE_INHIBIT_V1_H #include +#include #include "sway/server.h" +struct sway_idle_inhibit_manager_v1 { + struct wlr_idle_inhibit_manager_v1 *wlr_manager; + struct wl_listener new_idle_inhibitor_v1; + struct wl_list inhibitors; + + struct wlr_idle *idle; +}; + struct sway_idle_inhibitor_v1 { - struct sway_server *server; + struct sway_idle_inhibit_manager_v1 *manager; struct sway_view *view; struct wl_list link; struct wl_listener destroy; }; -void idle_inhibit_v1_check_active(struct sway_server *server); +void idle_inhibit_v1_check_active( + struct sway_idle_inhibit_manager_v1 *manager); +struct sway_idle_inhibit_manager_v1 *sway_idle_inhibit_manager_v1_create( + struct wl_display *wl_display, struct wlr_idle *idle); #endif diff --git a/include/sway/server.h b/include/sway/server.h index 693e6b82..a3e32898 100644 --- a/include/sway/server.h +++ b/include/sway/server.h @@ -23,16 +23,13 @@ struct sway_server { struct wlr_compositor *compositor; struct wlr_data_device_manager *data_device_manager; - struct wlr_idle *idle; - struct wlr_idle_inhibit_manager_v1 *idle_inhibit; struct sway_input_manager *input; struct wl_listener new_output; - struct wlr_idle_inhibit_manager_v1 *idle_inhibit_v1; - struct wl_listener new_idle_inhibitor_v1; - struct wl_list idle_inhibitors_v1; + struct wlr_idle *idle; + struct sway_idle_inhibit_manager_v1 *idle_inhibit_manager_v1; struct wlr_layer_shell *layer_shell; struct wl_listener layer_shell_surface; -- cgit v1.2.3