Xwayland: fix unsound cast
The X11 protocol uses 16 bit integers for width/height but we use
32 bit integers everywhere else in river. Make sure that values outside
the range of a 16 bit integer don't cause river to crash with an
assertion failure.
I think that coordinates outside the range of a 16 bit integer could
theoretically be reasonable with tiled high resolution displays in the
future. I doubt they ever get used in practice today but at the same
time we can't allow an errant layout generator to crash river.
(cherry picked from commit ae7f4b8fcb
)
This commit is contained in:
@ -106,10 +106,10 @@ pub fn configure(xwayland_view: XwaylandView) bool {
|
|||||||
}
|
}
|
||||||
|
|
||||||
xwayland_view.xwayland_surface.configure(
|
xwayland_view.xwayland_surface.configure(
|
||||||
@intCast(inflight.box.x + output_box.x),
|
math.lossyCast(i16, inflight.box.x + output_box.x),
|
||||||
@intCast(inflight.box.y + output_box.y),
|
math.lossyCast(i16, inflight.box.y + output_box.y),
|
||||||
@intCast(inflight.box.width),
|
math.lossyCast(u16, inflight.box.width),
|
||||||
@intCast(inflight.box.height),
|
math.lossyCast(u16, inflight.box.height),
|
||||||
);
|
);
|
||||||
|
|
||||||
xwayland_view.setActivated(inflight.focus != 0);
|
xwayland_view.setActivated(inflight.focus != 0);
|
||||||
|
Reference in New Issue
Block a user