REFACTOR (wl_listeners isolated)
This commit is contained in:
parent
ab3942d3b5
commit
b92eb285c0
31 changed files with 620 additions and 473 deletions
|
|
@ -1,3 +1,15 @@
|
|||
#include <stdlib.h>
|
||||
|
||||
#include <wlr/types/wlr_output.h>
|
||||
#include <wlr/types/wlr_scene.h>
|
||||
#include <wlr/types/wlr_seat.h>
|
||||
#include <wlr/types/wlr_session_lock_v1.h>
|
||||
|
||||
#include "clientutil.h"
|
||||
#include "lock.h"
|
||||
#include "monitor.h"
|
||||
#include "notify.h"
|
||||
|
||||
void createlocksurface(struct wl_listener *listener, void *data) {
|
||||
SessionLock *lock = wl_container_of(listener, lock, new_surface);
|
||||
struct wlr_session_lock_surface_v1 *lock_surface = data;
|
||||
|
|
@ -61,29 +73,6 @@ void destroysessionlock(struct wl_listener *listener, void *data) {
|
|||
destroylock(lock, 0);
|
||||
}
|
||||
|
||||
void locksession(struct wl_listener *listener, void *data) {
|
||||
struct wlr_session_lock_v1 *session_lock = data;
|
||||
SessionLock *lock;
|
||||
wlr_scene_node_set_enabled(&locked_bg->node, 1);
|
||||
if (cur_lock) {
|
||||
wlr_session_lock_v1_destroy(session_lock);
|
||||
return;
|
||||
}
|
||||
lock = session_lock->data = ecalloc(1, sizeof(*lock));
|
||||
focusclient(NULL, 0);
|
||||
|
||||
lock->scene = wlr_scene_tree_create(layers[LyrBlock]);
|
||||
cur_lock = lock->lock = session_lock;
|
||||
locked = 1;
|
||||
|
||||
LISTEN(&session_lock->events.new_surface, &lock->new_surface,
|
||||
createlocksurface);
|
||||
LISTEN(&session_lock->events.destroy, &lock->destroy, destroysessionlock);
|
||||
LISTEN(&session_lock->events.unlock, &lock->unlock, unlocksession);
|
||||
|
||||
wlr_session_lock_v1_send_locked(session_lock);
|
||||
}
|
||||
|
||||
void unlocksession(struct wl_listener *listener, void *data) {
|
||||
SessionLock *lock = wl_container_of(listener, lock, unlock);
|
||||
destroylock(lock, 1);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue