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:
parent
0e04f7cf1e
commit
f3cdb9bfeb
1 changed files with 9 additions and 3 deletions
|
@ -310,12 +310,18 @@ void LayerListWidget::set_selected_layer(Layer* layer)
|
||||||
{
|
{
|
||||||
if (!m_image)
|
if (!m_image)
|
||||||
return;
|
return;
|
||||||
for (size_t i = 0; i < m_image->layer_count(); ++i)
|
for (size_t i = 0; i < m_image->layer_count(); ++i) {
|
||||||
m_image->layer(i).set_selected(layer == &m_image->layer(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)
|
if (on_layer_select)
|
||||||
on_layer_select(layer);
|
on_layer_select(layer);
|
||||||
|
|
||||||
scroll_into_view(m_gadgets[m_selected_layer_index].rect, false, true);
|
|
||||||
update();
|
update();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue