Avoid notifying views that have been removed
This commit is contained in:
parent
e067212ad4
commit
34bf248614
1 changed files with 15 additions and 14 deletions
|
@ -2269,6 +2269,13 @@ impl MutableAppContext {
|
||||||
observed_window_id: usize,
|
observed_window_id: usize,
|
||||||
observed_view_id: usize,
|
observed_view_id: usize,
|
||||||
) {
|
) {
|
||||||
|
let callbacks = self.observations.lock().remove(&observed_view_id);
|
||||||
|
|
||||||
|
if self
|
||||||
|
.cx
|
||||||
|
.views
|
||||||
|
.contains_key(&(observed_window_id, observed_view_id))
|
||||||
|
{
|
||||||
if let Some(window) = self.cx.windows.get_mut(&observed_window_id) {
|
if let Some(window) = self.cx.windows.get_mut(&observed_window_id) {
|
||||||
window
|
window
|
||||||
.invalidation
|
.invalidation
|
||||||
|
@ -2277,13 +2284,7 @@ impl MutableAppContext {
|
||||||
.insert(observed_view_id);
|
.insert(observed_view_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
let callbacks = self.observations.lock().remove(&observed_view_id);
|
|
||||||
if let Some(callbacks) = callbacks {
|
if let Some(callbacks) = callbacks {
|
||||||
if self
|
|
||||||
.cx
|
|
||||||
.views
|
|
||||||
.contains_key(&(observed_window_id, observed_view_id))
|
|
||||||
{
|
|
||||||
for (id, callback) in callbacks {
|
for (id, callback) in callbacks {
|
||||||
if let Some(mut callback) = callback {
|
if let Some(mut callback) = callback {
|
||||||
let alive = callback(self);
|
let alive = callback(self);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue