diff options
author | Drew DeVault <sir@cmpwn.com> | 2018-04-03 19:15:14 -0400 |
---|---|---|
committer | Drew DeVault <sir@cmpwn.com> | 2018-04-04 18:47:48 -0400 |
commit | 46b388995d7d50a39d13fce9417e2ad0d2cf749f (patch) | |
tree | b675d26dbb554c9aef25839cf3f09cf82f6f9b92 /swaylock/main.c | |
parent | Implement input-inhibit in sway, swaylock (diff) | |
download | sway-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.c | 35 |
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 | ||
59 | static 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 | |||
65 | static 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 | |||
70 | static void output_done(void *data, struct wl_output *output) { | ||
71 | // Who cares | ||
72 | } | ||
73 | |||
74 | static 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 | |||
82 | struct wl_output_listener output_listener = { | ||
83 | .geometry = output_geometry, | ||
84 | .mode = output_mode, | ||
85 | .done = output_done, | ||
86 | .scale = output_scale, | ||
87 | }; | ||
88 | |||
59 | static void handle_global(void *data, struct wl_registry *registry, | 89 | static 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 | } |