mirror of
https://github.com/swaywm/sway.git
synced 2024-11-25 17:31:28 +00:00
chore: chase wlr_output_layout_get_box() update
https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/3439
This commit is contained in:
parent
69b430201c
commit
ee7668c1f2
|
@ -788,15 +788,15 @@ static struct cmd_results *cmd_move_to_position_pointer(
|
|||
struct wlr_output *output = wlr_output_layout_output_at(
|
||||
root->output_layout, cursor->x, cursor->y);
|
||||
if (output) {
|
||||
struct wlr_box *box =
|
||||
wlr_output_layout_get_box(root->output_layout, output);
|
||||
lx = fmax(lx, box->x);
|
||||
ly = fmax(ly, box->y);
|
||||
if (lx + container->pending.width > box->x + box->width) {
|
||||
lx = box->x + box->width - container->pending.width;
|
||||
struct wlr_box box;
|
||||
wlr_output_layout_get_box(root->output_layout, output, &box);
|
||||
lx = fmax(lx, box.x);
|
||||
ly = fmax(ly, box.y);
|
||||
if (lx + container->pending.width > box.x + box.width) {
|
||||
lx = box.x + box.width - container->pending.width;
|
||||
}
|
||||
if (ly + container->pending.height > box->y + box->height) {
|
||||
ly = box->y + box->height - container->pending.height;
|
||||
if (ly + container->pending.height > box.y + box.height) {
|
||||
ly = box.y + box.height - container->pending.height;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -546,12 +546,12 @@ bool apply_output_config(struct output_config *oc, struct sway_output *output) {
|
|||
}
|
||||
|
||||
// Update output->{lx, ly, width, height}
|
||||
struct wlr_box *output_box =
|
||||
wlr_output_layout_get_box(root->output_layout, wlr_output);
|
||||
output->lx = output_box->x;
|
||||
output->ly = output_box->y;
|
||||
output->width = output_box->width;
|
||||
output->height = output_box->height;
|
||||
struct wlr_box output_box;
|
||||
wlr_output_layout_get_box(root->output_layout, wlr_output, &output_box);
|
||||
output->lx = output_box.x;
|
||||
output->ly = output_box.y;
|
||||
output->width = output_box.width;
|
||||
output->height = output_box.height;
|
||||
|
||||
if (!output->enabled) {
|
||||
output_enable(output);
|
||||
|
|
|
@ -6,10 +6,11 @@ void desktop_damage_surface(struct wlr_surface *surface, double lx, double ly,
|
|||
bool whole) {
|
||||
for (int i = 0; i < root->outputs->length; ++i) {
|
||||
struct sway_output *output = root->outputs->items[i];
|
||||
struct wlr_box *output_box = wlr_output_layout_get_box(
|
||||
root->output_layout, output->wlr_output);
|
||||
output_damage_surface(output, lx - output_box->x,
|
||||
ly - output_box->y, surface, whole);
|
||||
struct wlr_box output_box;
|
||||
wlr_output_layout_get_box(root->output_layout,
|
||||
output->wlr_output, &output_box);
|
||||
output_damage_surface(output, lx - output_box.x,
|
||||
ly - output_box.y, surface, whole);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -737,14 +737,15 @@ static void update_output_manager_config(struct sway_server *server) {
|
|||
}
|
||||
struct wlr_output_configuration_head_v1 *config_head =
|
||||
wlr_output_configuration_head_v1_create(config, output->wlr_output);
|
||||
struct wlr_box *output_box = wlr_output_layout_get_box(
|
||||
root->output_layout, output->wlr_output);
|
||||
struct wlr_box output_box;
|
||||
wlr_output_layout_get_box(root->output_layout,
|
||||
output->wlr_output, &output_box);
|
||||
// We mark the output enabled even if it is switched off by DPMS
|
||||
config_head->state.enabled = output->current_mode != NULL && output->enabled;
|
||||
config_head->state.mode = output->current_mode;
|
||||
if (output_box) {
|
||||
config_head->state.x = output_box->x;
|
||||
config_head->state.y = output_box->y;
|
||||
if (!wlr_box_empty(&output_box)) {
|
||||
config_head->state.x = output_box.x;
|
||||
config_head->state.y = output_box.y;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -311,12 +311,13 @@ void arrange_output(struct sway_output *output) {
|
|||
if (config->reloading) {
|
||||
return;
|
||||
}
|
||||
const struct wlr_box *output_box = wlr_output_layout_get_box(
|
||||
root->output_layout, output->wlr_output);
|
||||
output->lx = output_box->x;
|
||||
output->ly = output_box->y;
|
||||
output->width = output_box->width;
|
||||
output->height = output_box->height;
|
||||
struct wlr_box output_box;
|
||||
wlr_output_layout_get_box(root->output_layout,
|
||||
output->wlr_output, &output_box);
|
||||
output->lx = output_box.x;
|
||||
output->ly = output_box.y;
|
||||
output->width = output_box.width;
|
||||
output->height = output_box.height;
|
||||
|
||||
for (int i = 0; i < output->workspaces->length; ++i) {
|
||||
struct sway_workspace *workspace = output->workspaces->items[i];
|
||||
|
@ -328,12 +329,12 @@ void arrange_root(void) {
|
|||
if (config->reloading) {
|
||||
return;
|
||||
}
|
||||
const struct wlr_box *layout_box =
|
||||
wlr_output_layout_get_box(root->output_layout, NULL);
|
||||
root->x = layout_box->x;
|
||||
root->y = layout_box->y;
|
||||
root->width = layout_box->width;
|
||||
root->height = layout_box->height;
|
||||
struct wlr_box layout_box;
|
||||
wlr_output_layout_get_box(root->output_layout, NULL, &layout_box);
|
||||
root->x = layout_box.x;
|
||||
root->y = layout_box.y;
|
||||
root->width = layout_box.width;
|
||||
root->height = layout_box.height;
|
||||
|
||||
if (root->fullscreen_global) {
|
||||
struct sway_container *fs = root->fullscreen_global;
|
||||
|
|
|
@ -695,12 +695,13 @@ 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);
|
||||
struct wlr_box box;
|
||||
wlr_output_layout_get_box(root->output_layout, NULL, &box);
|
||||
|
||||
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;
|
||||
}
|
||||
|
@ -708,7 +709,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;
|
||||
}
|
||||
|
@ -740,9 +741,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);
|
||||
if (!ob) {
|
||||
struct wlr_box ob;
|
||||
wlr_output_layout_get_box(root->output_layout, ws->output->wlr_output, &ob);
|
||||
if (wlr_box_empty(&ob)) {
|
||||
// On NOOP output. Will be called again when moved to an output
|
||||
con->pending.x = 0;
|
||||
con->pending.y = 0;
|
||||
|
@ -754,8 +755,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;
|
||||
|
@ -763,8 +764,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;
|
||||
|
|
|
@ -301,10 +301,10 @@ struct sway_output *output_get_in_direction(struct sway_output *reference,
|
|||
if (!sway_assert(direction, "got invalid direction: %d", direction)) {
|
||||
return NULL;
|
||||
}
|
||||
struct wlr_box *output_box =
|
||||
wlr_output_layout_get_box(root->output_layout, reference->wlr_output);
|
||||
int lx = output_box->x + output_box->width / 2;
|
||||
int ly = output_box->y + output_box->height / 2;
|
||||
struct wlr_box output_box;
|
||||
wlr_output_layout_get_box(root->output_layout, reference->wlr_output, &output_box);
|
||||
int lx = output_box.x + output_box.width / 2;
|
||||
int ly = output_box.y + output_box.height / 2;
|
||||
struct wlr_output *wlr_adjacent = wlr_output_layout_adjacent_output(
|
||||
root->output_layout, direction, reference->wlr_output, lx, ly);
|
||||
if (!wlr_adjacent) {
|
||||
|
|
Loading…
Reference in a new issue