diff --git a/crates/editor/src/blink_manager.rs b/crates/editor/src/blink_manager.rs index 77d10534d2..df66ec2125 100644 --- a/crates/editor/src/blink_manager.rs +++ b/crates/editor/src/blink_manager.rs @@ -30,7 +30,7 @@ impl BlinkManager { blink_epoch: 0, blinking_paused: false, visible: true, - enabled: true, + enabled: false, } } @@ -71,6 +71,7 @@ impl BlinkManager { if epoch == self.blink_epoch && self.enabled && !self.blinking_paused { self.visible = !self.visible; cx.notify(); + dbg!(cx.handle()); let epoch = self.next_blink_epoch(); let interval = self.blink_interval; @@ -96,8 +97,8 @@ impl BlinkManager { self.blink_cursors(self.blink_epoch, cx); } - pub fn disable(&mut self, _: &mut ModelContext) { - self.enabled = true; + pub fn disable(&mut self, _cx: &mut ModelContext) { + self.enabled = false; } pub fn visible(&self) -> bool { diff --git a/crates/editor/src/editor.rs b/crates/editor/src/editor.rs index 387920d81e..32e58a5d82 100644 --- a/crates/editor/src/editor.rs +++ b/crates/editor/src/editor.rs @@ -6511,8 +6511,10 @@ impl View for Editor { if let Some(rename) = self.pending_rename.as_ref() { cx.focus(&rename.editor); } else { + if !self.focused { + self.blink_manager.update(cx, BlinkManager::enable); + } self.focused = true; - self.blink_manager.update(cx, BlinkManager::enable); self.buffer.update(cx, |buffer, cx| { buffer.finalize_last_transaction(cx); if self.leader_replica_id.is_none() {