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(
|
||||
@intCast(inflight.box.x + output_box.x),
|
||||
@intCast(inflight.box.y + output_box.y),
|
||||
@intCast(inflight.box.width),
|
||||
@intCast(inflight.box.height),
|
||||
math.lossyCast(i16, inflight.box.x + output_box.x),
|
||||
math.lossyCast(i16, inflight.box.y + output_box.y),
|
||||
math.lossyCast(u16, inflight.box.width),
|
||||
math.lossyCast(u16, inflight.box.height),
|
||||
);
|
||||
|
||||
xwayland_view.setActivated(inflight.focus != 0);
|
||||
|
||||
Reference in New Issue
Block a user