From 72e959d753bb7bdf4ba6f7bff9aea3459391de60 Mon Sep 17 00:00:00 2001 From: Aliaksandr Kalenik Date: Thu, 27 Jul 2023 03:57:27 +0200 Subject: [PATCH] LibWeb: Fix calculation of bitmap size in BorderRadiusCornerClipper Correctly compute the maximum possible width and height for corners_bitmap_size by considering all pair combinations of corners. Partially fixes issue https://github.com/SerenityOS/serenity/issues/20205 --- .../Painting/BorderRadiusCornerClipper.cpp | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/Userland/Libraries/LibWeb/Painting/BorderRadiusCornerClipper.cpp b/Userland/Libraries/LibWeb/Painting/BorderRadiusCornerClipper.cpp index 9027129b5c..5ce47713a8 100644 --- a/Userland/Libraries/LibWeb/Painting/BorderRadiusCornerClipper.cpp +++ b/Userland/Libraries/LibWeb/Painting/BorderRadiusCornerClipper.cpp @@ -21,11 +21,19 @@ ErrorOr BorderRadiusCornerClipper::create(PaintContex DevicePixelSize corners_bitmap_size { max( - top_left.horizontal_radius + top_right.horizontal_radius, - bottom_left.horizontal_radius + bottom_right.horizontal_radius), + max( + top_left.horizontal_radius + top_right.horizontal_radius, + top_left.horizontal_radius + bottom_right.horizontal_radius), + max( + bottom_left.horizontal_radius + top_right.horizontal_radius, + bottom_left.horizontal_radius + bottom_right.horizontal_radius)), max( - top_left.vertical_radius + bottom_left.vertical_radius, - top_right.vertical_radius + bottom_right.vertical_radius) + max( + top_left.vertical_radius + bottom_left.vertical_radius, + top_left.vertical_radius + bottom_right.vertical_radius), + max( + top_right.vertical_radius + bottom_left.vertical_radius, + top_right.vertical_radius + bottom_right.vertical_radius)) }; RefPtr corner_bitmap;