summaryrefslogtreecommitdiffstats
path: root/swaylock/main.c
diff options
context:
space:
mode:
authorLibravatar Drew DeVault <sir@cmpwn.com>2018-04-03 19:15:14 -0400
committerLibravatar Drew DeVault <sir@cmpwn.com>2018-04-04 18:47:48 -0400
commit46b388995d7d50a39d13fce9417e2ad0d2cf749f (patch)
treeb675d26dbb554c9aef25839cf3f09cf82f6f9b92 /swaylock/main.c
parentImplement input-inhibit in sway, swaylock (diff)
downloadsway-46b388995d7d50a39d13fce9417e2ad0d2cf749f.tar.gz
sway-46b388995d7d50a39d13fce9417e2ad0d2cf749f.tar.zst
sway-46b388995d7d50a39d13fce9417e2ad0d2cf749f.zip
Add hidpi support to swaylock
Diffstat (limited to 'swaylock/main.c')
-rw-r--r--swaylock/main.c35
1 files changed, 33 insertions, 2 deletions
diff --git a/swaylock/main.c b/swaylock/main.c
index 6cd4e41d..1eda3afc 100644
--- a/swaylock/main.c
+++ b/swaylock/main.c
@@ -56,12 +56,42 @@ static const struct zwlr_layer_surface_v1_listener layer_surface_listener = {
56 .closed = layer_surface_closed, 56 .closed = layer_surface_closed,
57}; 57};
58 58
59static void output_geometry(void *data, struct wl_output *output, int32_t x,
60 int32_t y, int32_t width_mm, int32_t height_mm, int32_t subpixel,
61 const char *make, const char *model, int32_t transform) {
62 // Who cares
63}
64
65static void output_mode(void *data, struct wl_output *output, uint32_t flags,
66 int32_t width, int32_t height, int32_t refresh) {
67 // Who cares
68}
69
70static void output_done(void *data, struct wl_output *output) {
71 // Who cares
72}
73
74static void output_scale(void *data, struct wl_output *output, int32_t factor) {
75 struct swaylock_surface *surface = data;
76 surface->scale = factor;
77 if (surface->state->run_display) {
78 render_frames(surface->state);
79 }
80}
81
82struct wl_output_listener output_listener = {
83 .geometry = output_geometry,
84 .mode = output_mode,
85 .done = output_done,
86 .scale = output_scale,
87};
88
59static void handle_global(void *data, struct wl_registry *registry, 89static void handle_global(void *data, struct wl_registry *registry,
60 uint32_t name, const char *interface, uint32_t version) { 90 uint32_t name, const char *interface, uint32_t version) {
61 struct swaylock_state *state = data; 91 struct swaylock_state *state = data;
62 if (strcmp(interface, wl_compositor_interface.name) == 0) { 92 if (strcmp(interface, wl_compositor_interface.name) == 0) {
63 state->compositor = wl_registry_bind(registry, name, 93 state->compositor = wl_registry_bind(registry, name,
64 &wl_compositor_interface, 1); 94 &wl_compositor_interface, 3);
65 } else if (strcmp(interface, wl_shm_interface.name) == 0) { 95 } else if (strcmp(interface, wl_shm_interface.name) == 0) {
66 state->shm = wl_registry_bind(registry, name, 96 state->shm = wl_registry_bind(registry, name,
67 &wl_shm_interface, 1); 97 &wl_shm_interface, 1);
@@ -80,7 +110,8 @@ static void handle_global(void *data, struct wl_registry *registry,
80 calloc(1, sizeof(struct swaylock_surface)); 110 calloc(1, sizeof(struct swaylock_surface));
81 surface->state = state; 111 surface->state = state;
82 surface->output = wl_registry_bind(registry, name, 112 surface->output = wl_registry_bind(registry, name,
83 &wl_output_interface, 1); 113 &wl_output_interface, 3);
114 wl_output_add_listener(surface->output, &output_listener, surface);
84 wl_list_insert(&state->surfaces, &surface->link); 115 wl_list_insert(&state->surfaces, &surface->link);
85 } 116 }
86} 117}