diff options
Diffstat (limited to 'swaylock')
-rw-r--r-- | swaylock/main.c | 31 |
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 | ||
8 | list_t *surfaces; | ||
9 | struct registry *registry; | ||
10 | |||
11 | enum scaling_mode { | ||
12 | SCALING_MODE_STRETCH, | ||
13 | SCALING_MODE_FILL, | ||
14 | SCALING_MODE_FIT, | ||
15 | SCALING_MODE_CENTER, | ||
16 | SCALING_MODE_TILE, | ||
17 | }; | ||
18 | |||
8 | void sway_terminate(void) { | 19 | void sway_terminate(void) { |
9 | exit(EXIT_FAILURE); | 20 | exit(EXIT_FAILURE); |
10 | } | 21 | } |
11 | 22 | ||
12 | int main(int argc, char **argv) { | 23 | int 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 | } |