From 067ac6cfa7089d9a55d7ddfbb3db59bb51aec8b8 Mon Sep 17 00:00:00 2001 From: Drew DeVault Date: Thu, 10 Dec 2015 08:04:22 -0500 Subject: Discover swaylock extension in registry --- swaylock/main.c | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) (limited to 'swaylock') diff --git a/swaylock/main.c b/swaylock/main.c index 4f77dfec..a7a15533 100644 --- a/swaylock/main.c +++ b/swaylock/main.c @@ -1,16 +1,43 @@ -#include "wayland-desktop-shell-client-protocol.h" +#include "wayland-swaylock-client-protocol.h" #include #include #include "client/window.h" #include "client/registry.h" #include "log.h" +list_t *surfaces; +struct registry *registry; + +enum scaling_mode { + SCALING_MODE_STRETCH, + SCALING_MODE_FILL, + SCALING_MODE_FIT, + SCALING_MODE_CENTER, + SCALING_MODE_TILE, +}; + void sway_terminate(void) { exit(EXIT_FAILURE); } int main(int argc, char **argv) { init_log(L_INFO); - sway_log(L_INFO, "Hello world"); + surfaces = create_list(); + registry = registry_poll(); + + if (!registry->swaylock) { + sway_abort("swaylock requires the compositor to support the swaylock extension."); + } + + int i; + for (i = 0; i < registry->outputs->length; ++i) { + struct output_state *output = registry->outputs->items[i]; + struct window *window = window_setup(registry, output->width, output->height, false); + if (!window) { + sway_abort("Failed to create surfaces."); + } + lock_set_lock_surface(registry->swaylock, output->output, window->surface); + list_add(surfaces, window); + } return 0; } -- cgit v1.2.3