1
1
// Aseprite
2
- // Copyright (C) 2018-2020 Igara Studio S.A.
2
+ // Copyright (C) 2018-2021 Igara Studio S.A.
3
3
// Copyright (C) 2001-2018 David Capello
4
4
//
5
5
// This program is distributed under the terms of
@@ -81,7 +81,7 @@ Doc* Context::activeDocument() const
81
81
82
82
void Context::setActiveDocument (Doc* document)
83
83
{
84
- onSetActiveDocument (document);
84
+ onSetActiveDocument (document, true );
85
85
}
86
86
87
87
void Context::setActiveLayer (doc::Layer* layer)
@@ -206,15 +206,19 @@ void Context::onAddDocument(Doc* doc)
206
206
207
207
if (m_activeSiteHandler)
208
208
m_activeSiteHandler->addDoc (doc);
209
+
210
+ notifyActiveSiteChanged ();
209
211
}
210
212
211
213
void Context::onRemoveDocument (Doc* doc)
212
214
{
213
- if (doc == m_lastSelectedDoc)
214
- m_lastSelectedDoc = nullptr ;
215
-
216
215
if (m_activeSiteHandler)
217
216
m_activeSiteHandler->removeDoc (doc);
217
+
218
+ if (doc == m_lastSelectedDoc) {
219
+ m_lastSelectedDoc = nullptr ;
220
+ notifyActiveSiteChanged ();
221
+ }
218
222
}
219
223
220
224
void Context::onGetActiveSite (Site* site) const
@@ -224,24 +228,33 @@ void Context::onGetActiveSite(Site* site) const
224
228
activeSiteHandler ()->getActiveSiteForDoc (doc, site);
225
229
}
226
230
227
- void Context::onSetActiveDocument (Doc* doc)
231
+ void Context::onSetActiveDocument (Doc* doc, bool notify )
228
232
{
229
233
m_lastSelectedDoc = doc;
234
+ if (notify)
235
+ notifyActiveSiteChanged ();
230
236
}
231
237
232
238
void Context::onSetActiveLayer (doc::Layer* layer)
233
239
{
234
240
Doc* newDoc = (layer ? static_cast <Doc*>(layer->sprite ()->document ()): nullptr );
241
+ if (!newDoc)
242
+ return ;
243
+
244
+ activeSiteHandler ()->setActiveLayerInDoc (newDoc, layer);
245
+
235
246
if (newDoc != m_lastSelectedDoc)
236
247
setActiveDocument (newDoc);
237
- if (newDoc)
238
- activeSiteHandler ()-> setActiveLayerInDoc (newDoc, layer );
248
+ else
249
+ notifyActiveSiteChanged ( );
239
250
}
240
251
241
252
void Context::onSetActiveFrame (const doc::frame_t frame)
242
253
{
243
254
if (m_lastSelectedDoc)
244
255
activeSiteHandler ()->setActiveFrameInDoc (m_lastSelectedDoc, frame);
256
+
257
+ notifyActiveSiteChanged ();
245
258
}
246
259
247
260
void Context::onSetRange (const DocRange& range)
0 commit comments