From 14571f0f7793fe60ca14a25fc45adbe1e5b6a1e8 Mon Sep 17 00:00:00 2001 From: llyyr Date: Tue, 9 Jul 2024 21:04:52 +0530 Subject: [PATCH] vo_dmabuf_wayland: don't use -ve margins in window size calculation This happens with a positive --video-zoom value. We send invalid toplevel size and get killed by the compositor. --- video/out/vo_dmabuf_wayland.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/video/out/vo_dmabuf_wayland.c b/video/out/vo_dmabuf_wayland.c index c007c5bec3..d2daabeec3 100644 --- a/video/out/vo_dmabuf_wayland.c +++ b/video/out/vo_dmabuf_wayland.c @@ -523,8 +523,8 @@ static void resize(struct vo *vo) vo->opts->pan_x = 0; vo->opts->pan_y = 0; vo_get_src_dst_rects(vo, &src, &dst, &p->screen_osd_res); - int window_w = p->screen_osd_res.ml + p->screen_osd_res.mr + mp_rect_w(dst); - int window_h = p->screen_osd_res.mt + p->screen_osd_res.mb + mp_rect_h(dst); + int window_w = MPMAX(0, p->screen_osd_res.ml + p->screen_osd_res.mr) + mp_rect_w(dst); + int window_h = MPMAX(0, p->screen_osd_res.mt + p->screen_osd_res.mb) + mp_rect_h(dst); wp_viewport_set_destination(wl->viewport, lround(window_w / wl->scaling), lround(window_h / wl->scaling));