mirror of
https://github.com/swaywm/sway.git
synced 2026-05-05 06:46:49 -04:00
Make idle handling per seat
This commit is contained in:
parent
dd1a2922a4
commit
581d24079c
3 changed files with 24 additions and 4 deletions
|
|
@ -2,5 +2,6 @@
|
|||
#define _SWAY_IDLE_H
|
||||
#include <sway/server.h>
|
||||
|
||||
void idle_setup_seat(struct sway_server *server, struct sway_seat *seat);
|
||||
bool idle_init(struct sway_server *server);
|
||||
#endif
|
||||
|
|
|
|||
24
sway/idle.c
24
sway/idle.c
|
|
@ -68,12 +68,28 @@ static const struct wlr_idle_timeout_listener lock_listener = {
|
|||
.resumed = handle_nop,
|
||||
};
|
||||
|
||||
void idle_setup_seat(struct sway_server *server, struct sway_seat *seat) {
|
||||
if (server->idle == NULL) {
|
||||
return;
|
||||
}
|
||||
if (config != NULL) {
|
||||
wlr_log(L_DEBUG, "Setup idle timer %d", config->idle_timeout);
|
||||
wlr_idle_listen(server->idle, config->idle_timeout * 1000, &idle_listener, seat->wlr_seat);
|
||||
wlr_log(L_DEBUG, "Setup lock timer %d", config->lock_timeout);
|
||||
wlr_idle_listen(server->idle, config->lock_timeout * 1000, &lock_listener, seat->wlr_seat);
|
||||
} else {
|
||||
wlr_log(L_ERROR, "Cant setup idle timers for seat since no config is available!");
|
||||
}
|
||||
}
|
||||
|
||||
bool idle_init(struct sway_server *server) {
|
||||
wlr_log(L_DEBUG, "Initializing idle");
|
||||
server->idle = wlr_idle_create(server->wl_display);
|
||||
wlr_log(L_DEBUG, "Setup idle timer %d", config->idle_timeout);
|
||||
wlr_idle_listen(server->idle, config->idle_timeout * 1000, &idle_listener);
|
||||
wlr_log(L_DEBUG, "Setup lock timer %d", config->lock_timeout);
|
||||
wlr_idle_listen(server->idle, config->lock_timeout * 1000, &lock_listener);
|
||||
struct sway_seat *seat = NULL;
|
||||
wl_list_for_each(seat, &input_manager->seats, link) {
|
||||
idle_setup_seat(server, seat);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@
|
|||
#include "sway/tree/container.h"
|
||||
#include "sway/tree/view.h"
|
||||
#include "sway/tree/workspace.h"
|
||||
#include "sway/idle.h"
|
||||
#include "log.h"
|
||||
|
||||
static void seat_device_destroy(struct sway_seat_device *seat_device) {
|
||||
|
|
@ -257,6 +258,8 @@ struct sway_seat *seat_create(struct sway_input_manager *input,
|
|||
|
||||
wl_list_insert(&input->seats, &seat->link);
|
||||
|
||||
idle_setup_seat(input->server, seat);
|
||||
|
||||
return seat;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue