1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 05:47:35 +00:00

PixelPaint: Only scroll into view in LayerListWidget when needed

This makes sure that scroll_into_view is not called when not necessary,
or when m_layers is empty, which previously caused a crash upon
removing the last layer.
This commit is contained in:
Marcus Nilsson 2021-07-08 21:40:58 +02:00 committed by Andreas Kling
parent 0e04f7cf1e
commit f3cdb9bfeb

View file

@ -310,12 +310,18 @@ void LayerListWidget::set_selected_layer(Layer* layer)
{
if (!m_image)
return;
for (size_t i = 0; i < m_image->layer_count(); ++i)
m_image->layer(i).set_selected(layer == &m_image->layer(i));
for (size_t i = 0; i < m_image->layer_count(); ++i) {
if (layer == &m_image->layer(i)) {
m_image->layer(i).set_selected(true);
scroll_into_view(m_gadgets[i].rect, false, true);
m_selected_layer_index = i;
} else {
m_image->layer(i).set_selected(false);
}
}
if (on_layer_select)
on_layer_select(layer);
scroll_into_view(m_gadgets[m_selected_layer_index].rect, false, true);
update();
}