diff options
Diffstat (limited to 'sway/tree/container.c')
-rw-r--r-- | sway/tree/container.c | 26 |
1 files changed, 12 insertions, 14 deletions
diff --git a/sway/tree/container.c b/sway/tree/container.c index 2b6aa2ec..17289dd3 100644 --- a/sway/tree/container.c +++ b/sway/tree/container.c @@ -9,7 +9,6 @@ #include <wayland-server-core.h> #include <wlr/types/wlr_linux_dmabuf_v1.h> #include <wlr/types/wlr_output_layout.h> -#include <wlr/types/wlr_subcompositor.h> #include <wlr/render/drm_format_set.h> #include "linux-dmabuf-unstable-v1-protocol.h" #include "cairo_util.h" @@ -195,7 +194,7 @@ static struct sway_container *surface_at_view(struct sway_container *con, double #endif case SWAY_VIEW_XDG_SHELL: _surface = wlr_xdg_surface_surface_at( - view->wlr_xdg_toplevel->base, + view->wlr_xdg_surface, view_sx, view_sy, &_sx, &_sy); break; } @@ -696,13 +695,12 @@ void floating_calculate_constraints(int *min_width, int *max_width, *min_height = config->floating_minimum_height; } - struct wlr_box box; - wlr_output_layout_get_box(root->output_layout, NULL, &box); + struct wlr_box *box = wlr_output_layout_get_box(root->output_layout, NULL); if (config->floating_maximum_width == -1) { // no maximum *max_width = INT_MAX; } else if (config->floating_maximum_width == 0) { // automatic - *max_width = box.width; + *max_width = box->width; } else { *max_width = config->floating_maximum_width; } @@ -710,7 +708,7 @@ void floating_calculate_constraints(int *min_width, int *max_width, if (config->floating_maximum_height == -1) { // no maximum *max_height = INT_MAX; } else if (config->floating_maximum_height == 0) { // automatic - *max_height = box.height; + *max_height = box->height; } else { *max_height = config->floating_maximum_height; } @@ -742,9 +740,9 @@ void container_floating_resize_and_center(struct sway_container *con) { return; } - struct wlr_box ob; - wlr_output_layout_get_box(root->output_layout, ws->output->wlr_output, &ob); - if (wlr_box_empty(&ob)) { + struct wlr_box *ob = wlr_output_layout_get_box(root->output_layout, + ws->output->wlr_output); + if (!ob) { // On NOOP output. Will be called again when moved to an output con->pending.x = 0; con->pending.y = 0; @@ -756,8 +754,8 @@ void container_floating_resize_and_center(struct sway_container *con) { floating_natural_resize(con); if (!con->view) { if (con->pending.width > ws->width || con->pending.height > ws->height) { - con->pending.x = ob.x + (ob.width - con->pending.width) / 2; - con->pending.y = ob.y + (ob.height - con->pending.height) / 2; + con->pending.x = ob->x + (ob->width - con->pending.width) / 2; + con->pending.y = ob->y + (ob->height - con->pending.height) / 2; } else { con->pending.x = ws->x + (ws->width - con->pending.width) / 2; con->pending.y = ws->y + (ws->height - con->pending.height) / 2; @@ -765,8 +763,8 @@ void container_floating_resize_and_center(struct sway_container *con) { } else { if (con->pending.content_width > ws->width || con->pending.content_height > ws->height) { - con->pending.content_x = ob.x + (ob.width - con->pending.content_width) / 2; - con->pending.content_y = ob.y + (ob.height - con->pending.content_height) / 2; + con->pending.content_x = ob->x + (ob->width - con->pending.content_width) / 2; + con->pending.content_y = ob->y + (ob->height - con->pending.content_height) / 2; } else { con->pending.content_x = ws->x + (ws->width - con->pending.content_width) / 2; con->pending.content_y = ws->y + (ws->height - con->pending.content_height) / 2; @@ -1707,7 +1705,7 @@ static void update_marks_texture(struct sway_container *con, for (int i = 0; i < con->marks->length; ++i) { char *mark = con->marks->items[i]; if (mark[0] != '_') { - snprintf(part, len + 1, "[%s]", mark); + sprintf(part, "[%s]", mark); strcat(buffer, part); } } |