Redraw editor when we switch to a layer w/different grid settings

This commit is contained in:
David Capello 2019-07-04 15:04:15 -03:00
parent 6c68df4f25
commit 2156820512

View File

@ -329,12 +329,20 @@ void Editor::getInvalidDecoratoredRegion(gfx::Region& region)
void Editor::setLayer(const Layer* layer)
{
bool changed = (m_layer != layer);
const bool changed = (m_layer != layer);
const bool gridVisible = (changed && m_docPref.show.grid());
doc::Grid oldGrid, newGrid;
if (gridVisible)
oldGrid = getSite().grid();
m_observers.notifyBeforeLayerChanged(this);
m_layer = const_cast<Layer*>(layer);
m_observers.notifyAfterLayerChanged(this);
if (gridVisible)
newGrid = getSite().grid();
if (m_document && changed) {
if (// If the onion skinning depends on the active layer
m_docPref.onionskin.currentLayer() ||
@ -343,7 +351,11 @@ void Editor::setLayer(const Layer* layer)
// If there is a different opacity for nonactive-layers
Preferences::instance().experimental.nonactiveLayersOpacity() < 255 ||
// If the automatic cel guides are visible...
m_showGuidesThisCel) {
m_showGuidesThisCel ||
// If grid settings changed
(gridVisible &&
(oldGrid.tileSize() != newGrid.tileSize() ||
oldGrid.origin() != newGrid.origin()))) {
// We've to redraw the whole editor
invalidate();
}