From 357634ceae6d730131b26bc3e72b4cf0b3e902ad Mon Sep 17 00:00:00 2001 From: Marius Vlad Date: Mon, 19 Jun 2023 10:34:44 +0300 Subject: [PATCH] shell/wayland/display: Handle flags as bitfield entries We can have preferred and current mode or'ed in the same time, so we can't really check just for current mode. Make sure we do get a valid width/height for the outputs to avoid going further. Bug-AGL: SPEC-4841 Signed-off-by: Marius Vlad --- shell/wayland/display.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/shell/wayland/display.cc b/shell/wayland/display.cc index 434dd05..5ace67c 100644 --- a/shell/wayland/display.cc +++ b/shell/wayland/display.cc @@ -258,12 +258,14 @@ void Display::display_handle_mode(void* data, (void)flags; auto* oi = static_cast(data); - if (flags == WL_OUTPUT_MODE_CURRENT) { + if ((flags & WL_OUTPUT_MODE_CURRENT) == WL_OUTPUT_MODE_CURRENT) { oi->height = static_cast(height); oi->width = static_cast(width); oi->refresh_rate = refresh; } + assert(oi->height && oi->width); + FML_DLOG(INFO) << "Video mode: " << width << " x " << height << " @ " << (refresh > 1000 ? refresh / 1000.0 : (double)refresh) << " Hz"; -- 2.35.1