summaryrefslogtreecommitdiffstats
path: root/swaylock
diff options
context:
space:
mode:
authorLibravatar Drew DeVault <sir@cmpwn.com>2015-12-10 08:04:22 -0500
committerLibravatar Drew DeVault <sir@cmpwn.com>2015-12-10 08:05:27 -0500
commit067ac6cfa7089d9a55d7ddfbb3db59bb51aec8b8 (patch)
treec88daedfcda91314afe9cfbb077e37f15547d7b8 /swaylock
parentRefactor gdk pixbuf code into shared client lib (diff)
downloadsway-067ac6cfa7089d9a55d7ddfbb3db59bb51aec8b8.tar.gz
sway-067ac6cfa7089d9a55d7ddfbb3db59bb51aec8b8.tar.zst
sway-067ac6cfa7089d9a55d7ddfbb3db59bb51aec8b8.zip
Discover swaylock extension in registry
Diffstat (limited to 'swaylock')
-rw-r--r--swaylock/main.c31
1 files changed, 29 insertions, 2 deletions
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 @@
1#include "wayland-desktop-shell-client-protocol.h" 1#include "wayland-swaylock-client-protocol.h"
2#include <stdio.h> 2#include <stdio.h>
3#include <stdlib.h> 3#include <stdlib.h>
4#include "client/window.h" 4#include "client/window.h"
5#include "client/registry.h" 5#include "client/registry.h"
6#include "log.h" 6#include "log.h"
7 7
8list_t *surfaces;
9struct registry *registry;
10
11enum scaling_mode {
12 SCALING_MODE_STRETCH,
13 SCALING_MODE_FILL,
14 SCALING_MODE_FIT,
15 SCALING_MODE_CENTER,
16 SCALING_MODE_TILE,
17};
18
8void sway_terminate(void) { 19void sway_terminate(void) {
9 exit(EXIT_FAILURE); 20 exit(EXIT_FAILURE);
10} 21}
11 22
12int main(int argc, char **argv) { 23int main(int argc, char **argv) {
13 init_log(L_INFO); 24 init_log(L_INFO);
14 sway_log(L_INFO, "Hello world"); 25 surfaces = create_list();
26 registry = registry_poll();
27
28 if (!registry->swaylock) {
29 sway_abort("swaylock requires the compositor to support the swaylock extension.");
30 }
31
32 int i;
33 for (i = 0; i < registry->outputs->length; ++i) {
34 struct output_state *output = registry->outputs->items[i];
35 struct window *window = window_setup(registry, output->width, output->height, false);
36 if (!window) {
37 sway_abort("Failed to create surfaces.");
38 }
39 lock_set_lock_surface(registry->swaylock, output->output, window->surface);
40 list_add(surfaces, window);
41 }
15 return 0; 42 return 0;
16} 43}