output-layout: improve closest point for no outputs case

Without outputs, all points are equally invalid anyway, but for e.g.
cursor warping it makes more sense to preserve the original position.
This commit is contained in:
Kirill Primak 2023-01-21 14:02:27 +03:00 committed by Simon Ser
parent 377668aaf6
commit 843b874f22
2 changed files with 2 additions and 1 deletions

View file

@ -120,6 +120,7 @@ bool wlr_output_layout_intersects(struct wlr_output_layout *layout,
/** /**
* Get the closest point on this layout from the given point from the reference * Get the closest point on this layout from the given point from the reference
* output. If reference is NULL, gets the closest point from the entire layout. * output. If reference is NULL, gets the closest point from the entire layout.
* If the layout is empty, the result is the given point itself.
*/ */
void wlr_output_layout_closest_point(struct wlr_output_layout *layout, void wlr_output_layout_closest_point(struct wlr_output_layout *layout,
struct wlr_output *reference, double lx, double ly, struct wlr_output *reference, double lx, double ly,

View file

@ -302,7 +302,7 @@ void wlr_output_layout_closest_point(struct wlr_output_layout *layout,
return; return;
} }
double min_x = 0, min_y = 0, min_distance = DBL_MAX; double min_x = lx, min_y = ly, min_distance = DBL_MAX;
struct wlr_output_layout_output *l_output; struct wlr_output_layout_output *l_output;
wl_list_for_each(l_output, &layout->outputs, link) { wl_list_for_each(l_output, &layout->outputs, link) {
if (reference != NULL && reference != l_output->output) { if (reference != NULL && reference != l_output->output) {