mirror of
https://github.com/hyprwm/wlroots-hyprland.git
synced 2024-11-22 12:55:58 +01:00
cursor: Add a more general check for infinite/NaN cursor position
It should be considered a bug if a compositor sets a non-finite cursor position, so fail loudly (in debug builds) if that happens. The existing check in wlr_cursor_warp_closest() is now redundant, and would silently hide such bugs, so remove it.
This commit is contained in:
parent
8e8b9a7217
commit
5417a182e5
1 changed files with 4 additions and 4 deletions
|
@ -211,6 +211,10 @@ static struct wlr_cursor_device *get_cursor_device(struct wlr_cursor *cur,
|
||||||
static void cursor_warp_unchecked(struct wlr_cursor *cur,
|
static void cursor_warp_unchecked(struct wlr_cursor *cur,
|
||||||
double lx, double ly) {
|
double lx, double ly) {
|
||||||
assert(cur->state->layout);
|
assert(cur->state->layout);
|
||||||
|
if (!isfinite(lx) || !isfinite(ly)) {
|
||||||
|
assert(false);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
struct wlr_cursor_output_cursor *output_cursor;
|
struct wlr_cursor_output_cursor *output_cursor;
|
||||||
wl_list_for_each(output_cursor, &cur->state->output_cursors, link) {
|
wl_list_for_each(output_cursor, &cur->state->output_cursors, link) {
|
||||||
|
@ -296,10 +300,6 @@ void wlr_cursor_warp_closest(struct wlr_cursor *cur,
|
||||||
get_mapping(cur, dev, &mapping);
|
get_mapping(cur, dev, &mapping);
|
||||||
if (!wlr_box_empty(&mapping)) {
|
if (!wlr_box_empty(&mapping)) {
|
||||||
wlr_box_closest_point(&mapping, lx, ly, &lx, &ly);
|
wlr_box_closest_point(&mapping, lx, ly, &lx, &ly);
|
||||||
if (isnan(lx) || isnan(ly)) {
|
|
||||||
lx = 0;
|
|
||||||
ly = 0;
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
wlr_output_layout_closest_point(cur->state->layout, NULL, lx, ly,
|
wlr_output_layout_closest_point(cur->state->layout, NULL, lx, ly,
|
||||||
&lx, &ly);
|
&lx, &ly);
|
||||||
|
|
Loading…
Reference in a new issue