diff options
author | Drew DeVault <sir@cmpwn.com> | 2016-09-05 10:32:21 -0400 |
---|---|---|
committer | Drew DeVault <sir@cmpwn.com> | 2016-09-05 10:32:21 -0400 |
commit | 61184e3208c28b24a84aae5f5f0005311283826d (patch) | |
tree | c9ce54f75a0c753783a37d6cadda7ad5bb949fe2 | |
parent | Add support for * input configs (diff) | |
download | sway-61184e3208c28b24a84aae5f5f0005311283826d.tar.gz sway-61184e3208c28b24a84aae5f5f0005311283826d.tar.zst sway-61184e3208c28b24a84aae5f5f0005311283826d.zip |
Initial testing on hidpi clients
-rw-r--r-- | include/client/registry.h | 1 | ||||
-rw-r--r-- | swaybar/bar.c | 2 | ||||
-rw-r--r-- | wayland/buffers.c | 1 | ||||
-rw-r--r-- | wayland/registry.c | 4 |
4 files changed, 6 insertions, 2 deletions
diff --git a/include/client/registry.h b/include/client/registry.h index 9ac10c27..24b4d358 100644 --- a/include/client/registry.h +++ b/include/client/registry.h | |||
@@ -34,6 +34,7 @@ struct output_state { | |||
34 | struct wl_output *output; | 34 | struct wl_output *output; |
35 | uint32_t flags; | 35 | uint32_t flags; |
36 | uint32_t width, height; | 36 | uint32_t width, height; |
37 | uint32_t scale; | ||
37 | }; | 38 | }; |
38 | 39 | ||
39 | struct xkb { | 40 | struct xkb { |
diff --git a/swaybar/bar.c b/swaybar/bar.c index c6596864..f3767409 100644 --- a/swaybar/bar.c +++ b/swaybar/bar.c | |||
@@ -152,7 +152,7 @@ void bar_setup(struct bar *bar, const char *socket_path, const char *bar_id) { | |||
152 | 152 | ||
153 | struct output_state *output = bar_output->registry->outputs->items[bar_output->idx]; | 153 | struct output_state *output = bar_output->registry->outputs->items[bar_output->idx]; |
154 | 154 | ||
155 | bar_output->window = window_setup(bar_output->registry, output->width, 30, false); | 155 | bar_output->window = window_setup(bar_output->registry, output->width * output->scale, 30 * output->scale, false); |
156 | if (!bar_output->window) { | 156 | if (!bar_output->window) { |
157 | sway_abort("Failed to create window."); | 157 | sway_abort("Failed to create window."); |
158 | } | 158 | } |
diff --git a/wayland/buffers.c b/wayland/buffers.c index ba783b37..ff1e5ecf 100644 --- a/wayland/buffers.c +++ b/wayland/buffers.c | |||
@@ -75,6 +75,7 @@ static struct buffer *create_buffer(struct window *window, struct buffer *buf, | |||
75 | buf->surface = cairo_image_surface_create_for_data(data, CAIRO_FORMAT_ARGB32, width, height, stride); | 75 | buf->surface = cairo_image_surface_create_for_data(data, CAIRO_FORMAT_ARGB32, width, height, stride); |
76 | buf->cairo = cairo_create(buf->surface); | 76 | buf->cairo = cairo_create(buf->surface); |
77 | buf->pango = pango_cairo_create_context(buf->cairo); | 77 | buf->pango = pango_cairo_create_context(buf->cairo); |
78 | pango_cairo_context_set_resolution(buf->pango, 96 * 2); | ||
78 | 79 | ||
79 | wl_buffer_add_listener(buf->buffer, &buffer_listener, buf); | 80 | wl_buffer_add_listener(buf->buffer, &buffer_listener, buf); |
80 | return buf; | 81 | return buf; |
diff --git a/wayland/registry.c b/wayland/registry.c index 622571f0..2d66b7eb 100644 --- a/wayland/registry.c +++ b/wayland/registry.c | |||
@@ -32,7 +32,8 @@ static void display_handle_done(void *data, struct wl_output *wl_output) { | |||
32 | } | 32 | } |
33 | 33 | ||
34 | static void display_handle_scale(void *data, struct wl_output *wl_output, int32_t factor) { | 34 | static void display_handle_scale(void *data, struct wl_output *wl_output, int32_t factor) { |
35 | // this space intentionally left blank | 35 | struct output_state *state = data; |
36 | state->scale = factor; | ||
36 | } | 37 | } |
37 | 38 | ||
38 | static const struct wl_output_listener output_listener = { | 39 | static const struct wl_output_listener output_listener = { |
@@ -220,6 +221,7 @@ static void registry_global(void *data, struct wl_registry *registry, | |||
220 | struct wl_output *output = wl_registry_bind(registry, name, &wl_output_interface, version); | 221 | struct wl_output *output = wl_registry_bind(registry, name, &wl_output_interface, version); |
221 | struct output_state *ostate = malloc(sizeof(struct output_state)); | 222 | struct output_state *ostate = malloc(sizeof(struct output_state)); |
222 | ostate->output = output; | 223 | ostate->output = output; |
224 | ostate->scale = 1; | ||
223 | wl_output_add_listener(output, &output_listener, ostate); | 225 | wl_output_add_listener(output, &output_listener, ostate); |
224 | list_add(reg->outputs, ostate); | 226 | list_add(reg->outputs, ostate); |
225 | } else if (strcmp(interface, desktop_shell_interface.name) == 0) { | 227 | } else if (strcmp(interface, desktop_shell_interface.name) == 0) { |