mirror of
https://github.com/zed-industries/zed.git
synced 2024-10-26 08:31:04 +00:00
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,21 +2269,22 @@ impl MutableAppContext {
|
|||
observed_window_id: usize,
|
||||
observed_view_id: usize,
|
||||
) {
|
||||
if let Some(window) = self.cx.windows.get_mut(&observed_window_id) {
|
||||
window
|
||||
.invalidation
|
||||
.get_or_insert_with(Default::default)
|
||||
.updated
|
||||
.insert(observed_view_id);
|
||||
}
|
||||
|
||||
let callbacks = self.observations.lock().remove(&observed_view_id);
|
||||
if let Some(callbacks) = callbacks {
|
||||
if self
|
||||
.cx
|
||||
.views
|
||||
.contains_key(&(observed_window_id, 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) {
|
||||
window
|
||||
.invalidation
|
||||
.get_or_insert_with(Default::default)
|
||||
.updated
|
||||
.insert(observed_view_id);
|
||||
}
|
||||
|
||||
if let Some(callbacks) = callbacks {
|
||||
for (id, callback) in callbacks {
|
||||
if let Some(mut callback) = callback {
|
||||
let alive = callback(self);
|
||||
|
|
Loading…
Reference in a new issue