Add output_usable_area_scaled() helper

Preparatory for snap to window edge framework.
This commit is contained in:
Axel Burri 2023-08-05 23:53:01 +02:00 committed by Johan Malm
parent 5eb769d6d6
commit afe92654fd
2 changed files with 19 additions and 0 deletions

View file

@ -460,6 +460,7 @@ bool output_is_usable(struct output *output);
void output_update_usable_area(struct output *output); void output_update_usable_area(struct output *output);
void output_update_all_usable_areas(struct server *server, bool layout_changed); void output_update_all_usable_areas(struct server *server, bool layout_changed);
struct wlr_box output_usable_area_in_layout_coords(struct output *output); struct wlr_box output_usable_area_in_layout_coords(struct output *output);
struct wlr_box output_usable_area_scaled(struct output *output);
void handle_output_power_manager_set_mode(struct wl_listener *listener, void handle_output_power_manager_set_mode(struct wl_listener *listener,
void *data); void *data);

View file

@ -565,6 +565,24 @@ output_usable_area_in_layout_coords(struct output *output)
return box; return box;
} }
struct wlr_box
output_usable_area_scaled(struct output *output)
{
if (!output) {
return (struct wlr_box){0};
}
struct wlr_box usable = output_usable_area_in_layout_coords(output);
if (usable.height == output->wlr_output->height
&& output->wlr_output->scale != 1) {
usable.height /= output->wlr_output->scale;
}
if (usable.width == output->wlr_output->width
&& output->wlr_output->scale != 1) {
usable.width /= output->wlr_output->scale;
}
return usable;
}
void void
handle_output_power_manager_set_mode(struct wl_listener *listener, void *data) handle_output_power_manager_set_mode(struct wl_listener *listener, void *data)
{ {