Support ext-session-lock protocol

This commit is contained in:
Johan Malm 2023-03-30 22:19:05 +01:00 committed by Johan Malm
parent 6b83385ff7
commit d4288415c9
8 changed files with 356 additions and 1 deletions

View file

@ -47,6 +47,7 @@
#include "config/keybind.h"
#include "config/rcxml.h"
#include "regions.h"
#include "session-lock.h"
#if HAVE_NLS
#include <libintl.h>
#include <locale.h>
@ -283,6 +284,8 @@ struct server {
*/
int pending_output_layout_change;
struct session_lock *session_lock;
struct wlr_foreign_toplevel_manager_v1 *foreign_toplevel_manager;
struct wlr_drm_lease_v1_manager *drm_lease_manager;
@ -319,6 +322,7 @@ struct output {
struct wlr_scene_tree *layer_tree[LAB_NR_LAYERS];
struct wlr_scene_tree *layer_popup_tree;
struct wlr_scene_tree *osd_tree;
struct wlr_scene_tree *session_lock_tree;
struct wlr_scene_buffer *workspace_osd;
struct wlr_box usable_area;

22
include/session-lock.h Normal file
View file

@ -0,0 +1,22 @@
/* SPDX-License-Identifier: GPL-2.0-only */
#ifndef __LAB_SESSION_LOCK_H
#define __LAB_SESSION_LOCK_H
#include <wlr/types/wlr_session_lock_v1.h>
struct session_lock {
struct wlr_session_lock_v1 *lock;
struct wlr_surface *focused;
bool abandoned;
struct wl_list session_lock_outputs;
struct wl_listener new_surface;
struct wl_listener unlock;
struct wl_listener destroy;
};
void session_lock_init(struct server *server);
void session_lock_output_create(struct session_lock *lock, struct output *output);
#endif /* __LAB_SESSION_LOCK_H */