view: add view_center()

This commit is contained in:
Johan Malm 2021-07-09 21:39:20 +01:00
parent 4234d53fd7
commit cb98f8f197
2 changed files with 17 additions and 0 deletions

View file

@ -290,6 +290,7 @@ void view_move_resize(struct view *view, struct wlr_box geo);
void view_move(struct view *view, double x, double y);
void view_minimize(struct view *view);
void view_unminimize(struct view *view);
void view_center(struct view *view);
void view_maximize(struct view *view, bool maximize);
void view_for_each_surface(struct view *view,
wlr_surface_iterator_func_t iterator, void *user_data);

View file

@ -49,6 +49,22 @@ view_output(struct view *view)
return output;
}
void
view_center(struct view *view)
{
struct wlr_output *output = view_output(view);
if (!output) {
return;
}
struct wlr_output_layout *layout = view->server->output_layout;
struct wlr_output_layout_output* ol_output =
wlr_output_layout_get(layout, output);
int center_x = ol_output->x + output->width / 2;
int center_y = ol_output->y + output->height / 2;
view_move(view, center_x - view->w / 2, center_y - view->h / 2);
}
void
view_maximize(struct view *view, bool maximize)
{