1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 20:37:35 +00:00

Spreadsheet: Only append new columns/rows every 50ms

Fixes #5550.
This commit is contained in:
AnotherTest 2021-03-18 20:58:58 +03:30 committed by Andreas Kling
parent 7191098356
commit 9f8d518e82
2 changed files with 25 additions and 6 deletions

View file

@ -69,13 +69,25 @@ void InfinitelyScrollableTableView::did_scroll()
TableView::did_scroll();
auto& vscrollbar = vertical_scrollbar();
auto& hscrollbar = horizontal_scrollbar();
if (vscrollbar.is_visible() && vscrollbar.value() == vscrollbar.max()) {
if (on_reaching_vertical_end)
on_reaching_vertical_end();
if (!m_vertical_scroll_end_timer->is_active()) {
if (vscrollbar.is_visible() && vscrollbar.value() == vscrollbar.max()) {
m_vertical_scroll_end_timer->on_timeout = [&] {
if (on_reaching_vertical_end)
on_reaching_vertical_end();
m_vertical_scroll_end_timer->stop();
};
m_vertical_scroll_end_timer->start(50);
}
}
if (hscrollbar.is_visible() && hscrollbar.value() == hscrollbar.max()) {
if (on_reaching_horizontal_end)
on_reaching_horizontal_end();
if (!m_horizontal_scroll_end_timer->is_active()) {
if (hscrollbar.is_visible() && hscrollbar.value() == hscrollbar.max()) {
m_horizontal_scroll_end_timer->on_timeout = [&] {
if (on_reaching_horizontal_end)
on_reaching_horizontal_end();
m_horizontal_scroll_end_timer->stop();
};
m_horizontal_scroll_end_timer->start(50);
}
}
}