Don't use wlr_output properties

These properties are before rotation.
This commit is contained in:
Ryan Dwyer 2018-08-30 21:20:31 +10:00
parent 7586f150c0
commit acc2628c79
10 changed files with 47 additions and 39 deletions

View file

@ -219,8 +219,8 @@ void arrange_workspace(struct sway_workspace *workspace) {
struct sway_container *fs = workspace->fullscreen;
fs->x = output->wlr_output->lx;
fs->y = output->wlr_output->ly;
fs->width = output->wlr_output->width;
fs->height = output->wlr_output->height;
fs->width = output->width;
fs->height = output->height;
arrange_container(fs);
} else {
struct wlr_box box;

View file

@ -75,6 +75,11 @@ void output_enable(struct sway_output *output, struct output_config *oc) {
apply_output_config(oc, output);
list_add(root->outputs, output);
output->lx = wlr_output->lx;
output->ly = wlr_output->ly;
wlr_output_transformed_resolution(wlr_output,
&output->width, &output->height);
restore_workspaces(output);
if (!output->workspaces->length) {
@ -265,8 +270,8 @@ struct sway_output *output_get_in_direction(struct sway_output *reference,
"got invalid direction: %d", direction)) {
return NULL;
}
int lx = reference->wlr_output->lx + reference->wlr_output->width / 2;
int ly = reference->wlr_output->ly + reference->wlr_output->height / 2;
int lx = reference->wlr_output->lx + reference->width / 2;
int ly = reference->wlr_output->ly + reference->height / 2;
struct wlr_output *wlr_adjacent = wlr_output_layout_adjacent_output(
root->output_layout, wlr_dir, reference->wlr_output, lx, ly);
if (!wlr_adjacent) {
@ -346,10 +351,10 @@ void output_sort_workspaces(struct sway_output *output) {
}
void output_get_box(struct sway_output *output, struct wlr_box *box) {
box->x = output->wlr_output->lx;
box->y = output->wlr_output->ly;
box->width = output->wlr_output->width;
box->height = output->wlr_output->height;
box->x = output->lx;
box->y = output->ly;
box->width = output->width;
box->height = output->height;
}
enum sway_container_layout output_get_default_layout(
@ -360,7 +365,7 @@ enum sway_container_layout output_get_default_layout(
if (config->default_orientation != L_NONE) {
return config->default_orientation;
}
if (output->wlr_output->height > output->wlr_output->width) {
if (output->height > output->width) {
return L_VERT;
}
return L_HORIZ;

View file

@ -167,10 +167,10 @@ void view_autoconfigure(struct sway_view *view) {
struct sway_output *output = view->container->workspace->output;
if (view->container->is_fullscreen) {
view->x = output->wlr_output->lx;
view->y = output->wlr_output->ly;
view->width = output->wlr_output->width;
view->height = output->wlr_output->height;
view->x = output->lx;
view->y = output->ly;
view->width = output->width;
view->height = output->height;
return;
}

View file

@ -53,10 +53,10 @@ struct sway_workspace *workspace_create(struct sway_output *output,
return NULL;
}
node_init(&ws->node, N_WORKSPACE, ws);
ws->x = output->wlr_output->lx;
ws->y = output->wlr_output->ly;
ws->width = output->wlr_output->width;
ws->height = output->wlr_output->height;
ws->x = output->lx;
ws->y = output->ly;
ws->width = output->width;
ws->height = output->height;
ws->name = name ? strdup(name) : NULL;
ws->prev_split_layout = L_NONE;
ws->layout = output_get_default_layout(output);