1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-23 18:25:08 +00:00

LibGUI: Fix scroll_into_view flipping between left/top and right/bottom

This fixes flipping between left/top and right/bottom when the rectangle
to make visible doesn't fit into the visible portion each time the
function is called.
This commit is contained in:
Tom 2020-10-20 10:21:00 -06:00 committed by Andreas Kling
parent a823d2a962
commit 307f0bc778
2 changed files with 4 additions and 6 deletions

View file

@ -180,14 +180,14 @@ void ScrollableWidget::scroll_into_view(const Gfx::IntRect& rect, bool scroll_ho
if (scroll_vertically) {
if (rect.top() < visible_content_rect.top()) {
m_vertical_scrollbar->set_value(rect.top());
} else if (rect.bottom() > visible_content_rect.bottom()) {
} else if (rect.top() > visible_content_rect.top() && rect.bottom() > visible_content_rect.bottom()) {
m_vertical_scrollbar->set_value(rect.bottom() - visible_content_rect.height() + 1);
}
}
if (scroll_horizontally) {
if (rect.left() < visible_content_rect.left()) {
m_horizontal_scrollbar->set_value(rect.left());
} else if (rect.right() > visible_content_rect.right()) {
} else if (rect.left() > visible_content_rect.left() && rect.right() > visible_content_rect.right()) {
m_horizontal_scrollbar->set_value(rect.right() - visible_content_rect.width() + 1);
}
}