1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 16:17:45 +00:00

WindowsServer+LibGUI: Avoid getting color under cursor outside screen

This patch fixes a crash in ColorPicker caused by the ColorSelectOverlay
trying to request the color for a pixel outside the screen rect.
This commit is contained in:
networkException 2021-12-31 23:05:35 +01:00 committed by Andreas Kling
parent 8515d7d5ab
commit b46ea5158d
3 changed files with 9 additions and 4 deletions

View file

@ -1080,8 +1080,11 @@ Messages::WindowServer::GetColorUnderCursorResponse ClientConnection::get_color_
// manual translation to avoid sampling the color on the actual cursor itself.
auto cursor_location = ScreenInput::the().cursor_location().translated(-1, -1);
auto& screen_with_cursor = ScreenInput::the().cursor_location_screen();
auto color = Compositor::the().color_at_position({}, screen_with_cursor, cursor_location);
return color;
if (!screen_with_cursor.rect().contains(cursor_location))
return Optional<Color> {};
return { Compositor::the().color_at_position({}, screen_with_cursor, cursor_location) };
}
Messages::WindowServer::IsWindowModifiedResponse ClientConnection::is_window_modified(i32 window_id)